HFS+ und die File-Flags

Dieser Artikel behandelt die HFS+ File-Flags »uchg«, »schg« und »hidden«. Er zeigt die Möglichkeiten diese Flags mittels dem Befehlszeilenkommando »chflags« 1) zu setzen oder zu entfernen, sowie das Handling dieser Flags im Finder.

Praxisbeispiel: Beim Löschen einer Datei im Finder wird Ihnen der Löschvorgang möglicherweise verweigert:


In diesem Fall ist die Datei durch ein Flag vor dem Löschen bzw. vor Veränderungen geschützt. Sie können sich die verwendeten Datei-Flags einer Datei in einem Terminal mit dem ls-Befehl anzeigen lassen, dafür verwenden sie die Optionen -lO (kleines L und grosses O)

$ ls -lO /Users/pronto/Desktop/test.rtf 
-rw-r--r--  1 pronto  staff schg 177 21 Nov 13:58 /Users/pronto/Desktop/test.rtf

Sie können das in diesem Beispiel verwendete Datei-Flag schg durch den chflags-Befehl entfernen.

$ sudo chflags noschg /Users/pronto/Desktop/test.rtf 
Password:
$ ls -lO /Users/pronto/Desktop/test.rtf 
-rw-r--r--  1 pronto  staff  - 177 21 Nov 13:58 /Users/pronto/Desktop/test.rtf

In diesem Fall zB wurde das schg-Flag durch die Eingabe von noschg entfernt. (schg / noschg)

Das HFS+ Filesystem kennt insgesamt acht File-Flags, jedoch die gängigsten sind:

uchg: (User Immutable Flag) Dieses Flag führt beim Löschen im Finder lediglich zu einer Rückfrage. Das uchg-Flag kann im Finder ebenfalls durch das Aktivieren der Checkbox: Geschützt 2) gesetzt bzw durch Deaktivieren entfernt werden. Zum entfernen dieses Flags verwenden Sie »nouchg«.

schg: (System Immutable Flag) Dieses Flag verhindert das Löschen oder eine Veränderung der geschützen Datei systemweit. Jedoch kann der Super-User wie oben beschrieben dieses Flag entfernen. Zum entfernen dieses Flags verwenden Sie »noschg«

hidden: (Versteckt) Dieses Flag versteckt Dateien oder Verzeichnisse im Finder. Zum entfernen dieses Flags verwenden Sie »nohidden«. In einem Terminal jedoch werden sie weiterhin durch den ls-Befehl auch ohne weitere Optionen angezeigt. Sie können das zB mit einem einfachen ls-Befehl im /-Verzeichnis überprüfen:

$ cd / 
$ ls 
Applications			bin				private
Developer			cores				sbin
Handbücher & Informationen	dev				tmp
Library				etc				usr
Network				gmon.out			var
System				home				vidotask.txt
Users				mach_kernel
Volumes				net
prontos-Mac-Pro:/ pronto$ 

Sie sehen in dieser Ausgabe die Unix Standard Verzeichnisse wie zB usr, var, etc, tmp, welche Ihnen im Finder nicht angezeigt werden. Durch den Befehlszeilenparameter -lO fordern wir nun zur Gegenprobe den ls-Befehl auf, uns die Flags anzuzeigen:

$ cd / 
$ ls -lO 
total 97956
drwxrwxr-x+ 58 root    admin  -          1972 19 Nov 19:37 Applications
drwxrwxr-x@ 16 root    admin  -           544 16 Nov 20:01 Developer
lrwxr-xr-x   1 root    admin  -            60 12 Nov 10:39 Handbücher & Informationen -> /Library/Documentation/User Guides and Information.localized
drwxrwxr-t+ 60 root    admin  -          2040 19 Nov 18:56 Library
drwxr-xr-x@  2 root    wheel  hidden       68 23 Jun 08:19 Network
drwxr-xr-x   4 root    wheel  -           136 12 Nov 10:54 System
drwxr-xr-x   5 root    admin  -           170 12 Nov 10:39 Users
drwxrwxrwt@  5 root    admin  hidden      170 24 Nov 18:29 Volumes
drwxr-xr-x@ 39 root    wheel  hidden     1326 12 Nov 10:53 bin
drwxrwxr-t@  2 root    admin  hidden       68 23 Jun 08:19 cores
dr-xr-xr-x   3 root    wheel  hidden     4090 24 Nov 18:29 dev
lrwxr-xr-x@  1 root    wheel  hidden       11 14 Aug 22:48 etc -> private/etc
-rw-r--r--   1 pronto  admin  -      31421616 16 Nov 22:22 gmon.out
dr-xr-xr-x   2 root    wheel  hidden        1 24 Nov 18:29 home
-rw-r--r--@  1 root    wheel  hidden 18676624  3 Nov 19:40 mach_kernel
dr-xr-xr-x   2 root    wheel  hidden        1 24 Nov 18:29 net
drwxr-xr-x@  6 root    wheel  hidden      204 14 Aug 22:51 private
drwxr-xr-x@ 64 root    wheel  hidden     2176 12 Nov 10:53 sbin
lrwxr-xr-x@  1 root    wheel  hidden       11 14 Aug 22:48 tmp -> private/tmp
drwxr-xr-x@ 12 root    wheel  hidden      408 16 Nov 19:59 usr
lrwxr-xr-x@  1 root    wheel  hidden       11 14 Aug 22:48 var -> private/var
-rw-r--r--   1 pronto  admin  -         28624 19 Nov 19:46 vidotask.txt
prontos-Mac-Pro:/ pronto$ 

Durch das Setzen einer Finder Systemvariable, kann man den Finder dazu veranlassen, ebenfalls die versteckten Dateien anzuzeigen. Das kann uU für Webentwickler notwendig sein, wenn sie mit Unix .Dateien (Punkt-Datei) arbeiten müssen wie zB .htaccess oder .htpasswd und nicht auf die GUI verzichten wollen.

Finder Preference: /Users/[Benutzer]/Library/Preferences/com.apple.finder

Systemvariable: AppleShowAllFiles
Value: TRUE (versteckte Dateien anzeigen)
Value: FALSE (versteckte Dateien ausblenden)

$ defaults write com.apple.finder AppleShowAllFiles TRUE 
$ killall Finder 

Dieser Wert wird in die /Users/[Benutzer]/Library/Preferences/com.apple.finder geschrieben. Das »killall Finder« Kommando startet den Finder neu. Sie können sich die Preferences auch im Property List Editor anschauen und ggf dort auch editieren. Der Property List Editor ist Teil des Apple Tool Kits, welches auf der Installations DVD zu finden ist und nachinstalliert werden muss.

WikiSysop 2009/11/24 23:56

~~DISCUSSION~~