BEARBEITEN : Das Problem war, dass Apple Berechtigungen zum Markieren von Backups verwendet und Sie daran hindert, diese zu ändern (wahrscheinlich eine Sicherheitsfunktion). Durch die Verwendung von chmod -RN <dir>
entfernte ich ACL-Daten aus allen Ordnern mit wichtigen Daten. Dadurch konnte ich mich selbst zum Eigentümer machen und die entsprechenden Berechtigungen anwenden.
Ursprüngliche Frage
Ich habe ein extrem großes Backup (> 700 GB), das jetzt die falschen Berechtigungen hat (meine UID hat sich während der Neuinstallation geändert, lange Geschichte) und ich muss sie ändern. Die zeitaufwändige Option besteht darin, die einzelnen Ordner manuell zu durchsuchen und die Berechtigungen zu ändern, dies kann jedoch einige Zeit in Anspruch nehmen.
Ich möchte chown
mich selbst zum Eigentümer aller meiner wichtigen Daten machen und dann chmod 700
in all diesen Ordnern rwx
Berechtigungen nur für mich vergeben.
Die ideale Lösung ist eine Methode, mit find
der Sie rekursiv nach Ordnern suchen können, die einer regulären Ausdrucksweise entsprechen (meine derzeitige lautet .*/[DCV].*|Pictures|M[ou].*
). Nehmen Sie dann meine UID als Besitzer vor und setzen Sie die Berechtigungen auf 700.
Das Wichtige, was ich nicht begreifen kann:
Wenn ich jedoch versuche zu rennen, chown Me DirectoryName
bekomme ich chown: DirectoryName: Operation not permitted
.
Alles, was ich finde, hängt mit dem Ändern der Berechtigungen einer Datei und nicht eines Verzeichnisses zusammen. Vielleicht sehe ich das falsch?
Etwas sagt mir, dass es keine Möglichkeit gibt, meine UID rwx
und ---
an alle anderen weiterzugeben.
Wie kann ich das erreichen? Ich verwende Mac OS X 10.10.3.
Ich weiß , dass dies ein UNIX / Linux Forum (und ich bin mit Mac) , aber diese Frage ist viel mehr über den Shell verwenden, chown
, chmod
und Berechtigungen und alle Lösungen , die hier geschrieben wird jedes UNIX-basiertes Betriebssystem anwendbar. Es ist vorzuziehen, wenn die bereitgestellten Lösungen dazu führen, dass meine älteren Sicherungen in Time Machine wieder angezeigt werden.
Vielen Dank an alle, die prompt geantwortet haben, aber chown
aus irgendeinem Grund nicht an Verzeichnissen zu arbeiten scheinen. Ist die Tatsache, dass es sich um ein .sparsebundle
Disk-Image auf einem Netzwerklaufwerk handelt, relevant? Ich nahm an, dass es dasselbe wie auf jedem externen Laufwerk sein würde.
quelle
root_squash
aktivierter Option exportiert wird , sodass Sie keine reinen Root-Vorgänge ausführen können, z. B.chown
vom Client aus.find . -user $other_uid -print0 | sudo xargs chown $USER
funktionieren.df -hT <dirname>
sollte dir sagen.df -hT <dir>
gibt keine Ausgabe für a) das Stammverzeichnis der Netzwerkfestplatte b) das Festplattenabbild innerhalb der Netzwerkfestplatte c) einen beliebigen Ordner auf der Netzwerkfestplatte aus. Vielleicht ist das von Ihnen beabsichtigte Verhalten auf Mac und Linux unterschiedlich implementiert?Antworten:
Ich kann falsch verstanden haben. Sie können jedoch rekursiv chmod und chown verwenden, z.
Um die Berechtigung 700 rekursiv anzuwenden, können Sie Folgendes verwenden:
Natürlich ist das obige für Linux, also nicht sicher, ob Mac OSX dasselbe ist.
EDIT: Ja, tut mir leid, ich habe vergessen zu erwähnen, dass du root sein musst, um etwas zu erkennen.
quelle
sudo
, sosudo chmod
(Sie werden nach einem Passwort mit Adminstrator Zugang beantragt werden).versuchen Sie es als root
wo
-type d
gilt nur für dir-name ...
Ihr regulärer Ausdruck-exec chown Me {} \;
benutze chown auf find dir.Sie müssen root sein, um chown.
quelle