Benutzerspezifische Werkzeuge
Artikelaktionen

Geschützte und ungeschützte Dateien

Seit Jahren können Sie mit dem Mac-Betriebssystem Dateien und Ordner gegen versehentliches Löschen oder Ändern schützen. In Mac OS X haben Sie dieselbe Möglichkeit: sowohl im Finder als auch in der Shell.

Wenn sich Freunde und Verwandte mit etwas wirklich auskennen, dann damit, ausgerechnet die eine Datei zu finden, an der Sie so elend lange gearbeitet haben, und diese dann völlig unabsichtlich zu löschen. Seit vielen Jahren besteht Apples erste Verteidigungsmaßnahme gegen solches Verhalten darin, eine Datei zu schützen, so dass sie nicht mehr gelöscht oder verändert werden kann, wenn der Schutz nicht eigens wieder aufgehoben wird.

Diese Funktion besteht auch weiterhin in Mac OS X und gilt sogar für den root-Benutzer (geschützte Dateien können nicht gelöscht werden, ohne dass Sie zuvor den Schutz aufheben, basta!). Langjährige Mac-Nutzer sind mit dem folgenden Prozess vertraut, eine Datei oder einen Ordner mit Hilfe des Finders zu schützen:

  1. Markieren Sie die gewünschte Datei oder den Ordner im Finder.
  2. Wählen Sie Information einblenden im Ablage-Menü, oder drücken Sie Befehl-I.
  3. Setzen Sie ein Häkchen in das Optionsfeld Geschützt.

Die beiden folgenden Shell-Befehle haben jeweils den gleichen Effekt:

% sudo chflags uchg Dateiname.txt
% /Developer/Tools/SetFile -a L Dateiname.txt

Das chflags-Utility ist Teil der Mac OS X-Standardinstallation und ändert das uchg-Flag einer Datei, das die Veränderbarkeit der Datei festlegt (in Worten: »Diese Datei kann nicht geändert werden«). chflags kann nur von einem Superuser oder dem Datei-Eigentümer ausgeführt werden. SetFile ist ein Dienstprogramm, das Teil der Entwickler-Werkzeuge ist und Dateiattribute bearbeitet (Attribute und Flags können als äquivalent betrachtet werden). In diesem Falle geben Sie an, dass das Datei-Attribut Geschützt (-a L) festgelegt werden soll.


Im Finder erkennen Sie eine geschützte Datei daran, dass in der linken, unteren Ecke des normalen Dateisymbols ein kleines Vorhängeschloss zu sehen ist (siehe Abbildung 1-16).

Abbildung 1-16

Im Terminal können Sie ls -ol eingeben (o, um die Datei-Flags anzuzeigen, und l, um eine detailliertere Liste zu erhalten). Jede Datei mit dem uchg-Flag ist geschützt:

% ls -ol Dateiname.txt

-rw-r--r-- 1 morbus staff uchg 0 Dec 4 01:07 Dateiname.txt

Das Aufheben des Schutzes funktioniert genau umgekehrt. Entweder entfernen Sie das entsprechende Häkchen im Info-Fenster der Datei, oder Sie geben einen der folgenden Shell-Befehle ein:

% sudo chflags nouchg Dateiname.txt

oder

% sudo chflags -R nouchg Verzeichnis # Verändert den Inhalt des Verzeichnisses rekursiv

oder

% /Developer/Tools/SetFile -a l Dateiname.txt

Das ist nicht wirklich überraschend an dieser Stelle. Um ein uchg- oder irgendein anderes Datei-Flag mit Hilfe des chflags-Utilitys aufzuheben, setzen Sie vor das Flag einfach ein no. Wenn Sie SetFile verwenden, ändern Sie einfach die Groß- und Kleinschreibung des Attributzeichens; Großbuchstaben fügen das Flag zu einer Datei hinzu, Kleinbuchstaben entfernen es.

Weitere Fundstellen

  • Um Details über chflags und SetFile zu erhalten, geben Sie im Terminal  man chflags bzw. man SetFile ein.
Quelle: http://www.oreilly.de/catalog/mcosxhksger/chapter/ch01.html