[[:mac|{{ :Apple.png?40|}}]]
===== 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<< ((http://developer.apple.com/Mac/library/documentation/Darwin/Reference/ManPages/man1/chflags.1.html)) 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:
\\
{{ :mac:deletefailure.png }}
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 ((http://wiki.prontosystems.org/_media/mac:geschuetzt.png)) 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.
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.
{{ :mac:finderplist.png |}}
--- //[[pronto@kastner.de|WikiSysop]] 2009/11/24 23:56//
~~DISCUSSION~~
{{keywords>hfs+ uchg nouchg schg noschg hidden chflags flags}}