Ich bin ein großer Fan dieser umask, den Sie ermöglicht in Zusammenarbeit mit dem sgid-bit eine fast beliebige Rechtevergabe im POSIX-Netzwerk ohne ACL’s einsetzen zu müssen.
Egal ob man private Gruppen oder sonstige vertrauenswürdige Gruppen erschafft – ein Datenaustausch auf einer lokalen Workstation oder im NFS-Netzwerk ist zu 95% konfigurierbar.
Während man auf fast allen UNIX Plattformen eine globale umask 0002 in /etc/profile einträgt, muss man auf Mac OS X eine XML-basierende Property Datei ändern, und zwar mit
defaults write /Library/Preferences/.GlobalPreferences NSUmask 2
Hinweise:
- Bei allen nicht-root Usern muß natürlich sudo vorangestellt werden
- Der letzte Pfadteil (.GlobalPreferences) wird ohne den Suffix .plist angegeben.
- Nach NSUmask kommt der typische Oktalwerk des Rechtesystems
Unter Mac OS X 10.5 aka Leopard funktioniert NSUmask nicht mehr.
Stattdessen muss die Datei /etc/launchd.conf bearbeitet oder angelegt werden.
Dort muss der Eintrag umask 002 eingetragen werden.
Auch unter openSuSE 11.0 hat sich etwas geändert.
Man kann wohl noch innerhalb der /etc/profile den Eintrag vornehmen (steht noch legacy kommentar drin) – der eigentlich Platz für diese Angabe befindet sich jetzt aber unter:
/etc/login.defs
Seit Mac OS X 10.5.3 in abwärtskompatibler Form, spätestens seit Mac OS X 10.6 aka Snow Leopard Pflicht, wird eine customized umask nun
in der Datei
/etc/launchd-user.conf
eingetragen (derselbe Inhalt wie früher /etc/launchd.conf)
In Mac OS X Yosemite (10.10) entfällt die o.g. Methode über launchd-user.conf.
Bis zur Version 10.10.3 gab es tatsächlich überhaupt keine Möglichkeit eine globale umask zu setzen – nicht mal lokal, abgesehen von Konsolenprogrammen die einen lokalen Eintrag der ~/.profile respektierten.
Erst ab 10.10.3 gibt es wieder ein globales Kommando
sudo launchctl config user umask 002
stellt den gewohnten Zustand wieder her.