Antworten:
Ich glaube, das ergibt sich aus 2 Ideen, obwohl ich mich irren könnte.
Zu Beginn der Unix-Entwicklung waren die Berechtigungen weit offen. Vor dem Zeitalter der Sicherheit war die Idee, eine Datei nur für bestimmte Personen lesbar / beschreibbar / ausführbar zu machen, nicht erforderlich. Als solches würde der natürliche Fortschritt von diesem Standpunkt aus darin bestehen, die Idee von Berechtigungen aufzugreifen und sie einzuschränken. Anstatt einen Wert von 0 für Berechtigungen zu verwenden und diesen hinzuzufügen.
Der andere Grund wäre die Idee, dass eine bestimmte Verweigerung in den meisten Fällen genauere Ergebnisse liefert als eine bestimmte Erlaubnis. Unterschiedliche Situationen erfordern unterschiedliche Bedürfnisse. Zum Beispiel sind Standardverzeichnisberechtigungen: 755
wobei Standarddateiberechtigungen sind644
Wenn Sie beispielsweise ausdrücklich die Ausführung zulassen , müsste dies sowohl in Verzeichnisse als auch in Dateien übersetzt werden. Sie stehen dann vor der Wahl, ob Verzeichnisse nicht mit aktivierter Ausführung geliefert werden oder Dateien. Verzeichnisse müssen jedoch ausgeführt werden, damit sie funktionieren. Daher treffen Sie stattdessen die Option, zusätzliche Berechtigungen zu entfernen, anstatt speziell Berechtigungen hinzuzufügen.
Mit einer Umask von 0000
haben Sie immer noch keine Ausführungsberechtigungen für eine normale Datei. Wenn Sie die Dinge umgekehrt machen, ist es schwieriger, sie auf diese Weise zu konstruieren.
umask
Gibt keine Berechtigungen für Dateien an, die von creat (2) und open (2) erstellt wurden. Es wurde nur angegeben, welche Bits zwangsweise ausgeschaltet werden sollen, um sicherheitsvernachlässigende Programme davon abzuhalten, Löcher zu bohren.
Eine übliche IT-Konvention bezieht sich auf die Optionen "Standard" und "Nicht ändern" mit der Nummer 0
. Hier gibt umask = 0 an, dass die Modi nach creat (2) überhaupt nicht geändert werden sollten und Programme Dateien mit genau den gleichen Berechtigungen erstellen, die von creat (Name, Modus ) angegeben wurden. Wenn umask einen Bit gesetzt hat, es löscht entsprechende Erlaubnis Bit für Dateien erstellt (dh Auswirkungen einer Veränderung gegenüber der Logik des Programms). Deshalb diese negative Logik.
setmask
war ein Befehl, der in UNOS verfügbar war (seit 1980).
Der umask
Befehl bietet Ihnen seit längerer Zeit ähnliche Funktionen.
Anruf:
umask -S
um die invertierte Maske als chmod-ähnlichen symbolischen Modus zu erhalten.
umask u=rwx,g=rx,o=rx
um das Äquivalent von zu bekommen uask 022
.
Ihr Wunsch wurde also bereits umgesetzt.