Historisch gesehen, warum ist Umask so wie es ist?

7

umask hat mich immer gestolpert. Logischerweise würde ich lieber eine 'Setmask' haben, die Argumente im chmod-Stil akzeptiert. Weiß jemand warum es so ist wie es ist?

ojblass
quelle

Antworten:

4

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: 755wobei 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 0000haben 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.

Soße
quelle
In diesem Zusammenhang finden Sie das Patent von Dennis Ritchie und Bell Lab zur Verbesserung der Dateiberechtigungen in USP 4135240, Schutz des Inhalts von Datendateien . Es stammt aus dem Jahr 1973. Hier ist ein Teil des Abstracts: "Eine verbesserte Anordnung zur Steuerung des Zugriffs auf Datendateien durch Computerbenutzer. Zugriffsberechtigungsbits werden im Stand der Technik verwendet, um die Berechtigungen für den Dateieigentümer und Nichtbesitzer zum Lesen, Schreiben und Ausführen separat anzugeben der Dateiinhalt ... "
2

umaskGibt 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.

Incnis Mrsi
quelle
1

setmask war ein Befehl, der in UNOS verfügbar war (seit 1980).

Der umaskBefehl 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=rxum das Äquivalent von zu bekommen uask 022.

Ihr Wunsch wurde also bereits umgesetzt.

schily
quelle