Weißt du, woran das liegen kann?
Siehe Post #2
Es sei denn, ein böswilliger Mensch hätte dir (mit Administratorrechten) eine spezielle Sonderform des Dateischutzes verpasst, die sich überhaupt nicht mehr aufheben lässt. Davon ist aber ja wohl nicht auszugehen.
Was ist ein Root-Benutzer?
Der "Gott" unter den Benutzern eines jeden Unix-Systems.
Auch ganz allgemein als der "superuser" bezeichnet - sein voller Name lautet unter OS X auf "System Administrator", seine numerische Benutzerkennung (UID) ist die Null und sein Login-Kurzname ist traditionell "root". In den grafischen Programmen der OSX-GUI wird er auch vereinfachend als "System" bezeichnet.
Der Unterschied zu allen anderen Konten besteht ganz einfach darin, dass seine Zugriffsberechtigungen überhaupt nie geprüft werden. Egal was auch immer er tun will - er darf das, Punkt.
Eine "gewöhnliche" Anmeldung unter diesem Namen ist gesperrt, aber nach einem kleinen Systemeingriff möglich. Da man sich damit allerdings gewaltig sein System zerballern kann (und das fast unweigerlich immer tut, auch ohne irgendwas bewusst falsch gemacht zu haben), ist davon dringend abzuraten. Egal was auch immer du irgendwo liest - diese Freischaltung des root-Kontos ist
niemals erforderlich.
Was bewirkt dieser Terminal-Befehl?
Er hebt das "geschützt" Attribut mit den Privilegien dieses root-Benutzers auf.
(Für eines oder beliebig viele Objekte, auf Wunsch auch rekursiv für ganze Ordnerhierarchien.)
Der Befehl besteht aus mehreren Einzelkomponenten:
Das als zusätzliche Präfix zum eigentlichen Befehl benutzte Kommando "sudo" sorgt dafür, dass der folgende Restbefehl mit den Rechten eines beliebigen anderen Benutzers ausgeführt wird. Wird dieser (wie zB hier) nicht explizit benannt, ist damit der root-Benutzer gemeint. (Das ist der häufigste Einsatzfall für sudo)
"sudo" erfordert die Eingabe des
eigenen Admin-Kennworts (und kann auch nur von Administratoren benutzt werden).
Diese Verifizierung dient der Absicherung gegen eine missbräuchliche Benutzung dieses
überaus gefährlichen Befehls, ein einmal eingegebenes Kennwort bleibt für eine Toleranzzeit von üblicherweise 5 Minuten gültig, in der jeder weitere Aufruf von "sudo" gewissermassen auf "scharf geschaltet" bleibt.
Das eigentliche Kommando "chflags" ändert diverse speziellere Dateiattribute, die über das 'normale' Unix-Pflichtenheft hinausgehen und im BSD-Terminus daher nicht als "Permissions" (Rechte), sondern als "Flags" bezeichnet werden. Eines dieser "besonderen" Flags ist der via Finder zugängliche "geschützt" Marker.
Seine Wirkung geht deutlich über einen sonst üblichen, einfachen Entzug des Schreibrechtes hinaus - er verhindert wirklich *jede* Änderung an einem Objekt, und zwar nicht nur des Inhalts, sondern auch seiner essentiellen Metadaten wie Name, Etikett oder den Ablageort. Auch die Änderung der 'normalen', Unix-typischen Zugriffsregeln wird dadurch unterbunden.
Wird einer Datei lediglich das übliche Schreibrecht genommen (also auf "nur lesen" oder "keine Rechte" gesetzt), dann lautet eine eventuelle Fehlermeldung beim Versuch des Schreibzugriffs nur "
permission denied" - also "
Erlaubnis verwehrt". Ein anderer Benutzer kann aber gänzlich andere Rechte besitzen und der Zugriff wird ihm problemlos gestattet. Auch wird hiervon nur der reine Inhalt einer Datei gesperrt, aber nicht ihre anderen Eigenschaften wie Name, Datum oder Pfad - dh die Datei kann durchaus verschoben oder umbenannt werden.
Wird aber das "geschützt" Flag gesetzt (es wird im Terminal als "user-immutable", "unchangeable" oder abgekürzt nur "uchg" bezeichnet), dann wird die Datei regelrecht "
unverwundbar". Die Sperre gilt für alle Benutzer und für alle Änderungen: Der gemeldete Fehler wäre ein sehr viel weitreichenderes "
operation not permitted" (also "
Aktion nicht möglich"). Selbst der ansonsten allmächtige root-Benutzer wird dadurch gebremst - er kann aber dieses Flag für alle Objekte vorher aufheben und die Aktion dann doch durchführen.
Ein
chflags uchg "Objekt" setzt dieses Flag, ein umgekehrtes
chflags nouchg "Objekt" hebt es wieder auf, durch dieses Schlüsselwort wird also die genaue Art des Flags und die "Richtung" der Änderung definiert.
Danach folgt dann noch das (oder die) Argument(e), die den Zielpfad und damit das zu bearbeitende Objekt benennen.
Tip:
Dieser Pfad lässt sich ganz simpel an der aktuellen Cursorposition einfügen, indem man ein Objekt per Drag&Drop aus dem Finder in das offene Terminalfenster zieht. (Das empfiehlt sich v.a. für Neulinge im textorientierten Terminal-Universum sehr, denn die strengen Syntaxregeln sind nicht so ganz banal.)
Für eine Datei "Mein Beispiel.txt" auf deinem Schreibtisch könnte also der volle Befehl wie folgt lauten:
Code:
sudo chflags nouchg /Users/mosh/Desktop/Mein\ Beispiel.txt
[COLOR="#2f4f4f"][I]# oder aber
# (das wäre das gleiche, nur minimal anders formuliert)[/I][/COLOR]
sudo chflags nouchg "/Users/mosh/Desktop/Mein Beispiel.txt"
Wie könnte ein anderer Eigentümer des Objekts fälschlicherweise entstanden sein?
Ein unbedacht und/oder unsachgemäss ausgeführter Terminalbefehl könnte das bewirken, auch ein mit Admin-Privilegien abgesegnetes Programm/Skript kann das bei fehlerhafter Arbeitsweise oder falscher Anwendung tun.
Es wäre u.U. auch möglich, dass du ein neues Benutzerkonto angelegt hast, das lediglich den gleichen Namen trägt (aber dennoch nicht wirklich identisch ist).
Auch durch einen Zugriff von einem anderen/externen Startvolume aus (mit anderen eingerichteten Benutzern) kann das u.U. passieren.