Warum ist die Standard-Umask 002 oder 022 in vielen Unix-Systemen? Scheint standardmäßig unsicher [geschlossen]

8

Ich benutze Linux & Unix schon lange. Das erste Mal, dass ich Unix lernte, war in einem Computer-Klassenzimmer mit vielen Schülern, wo der Ausbilder uns sagte, dass Sie sich sshan Remote-Workstations der Universität anmelden können, an der ich studiert habe.

In diesem Zusammenhang weiß ich sofort, dass Unix ein Mehrbenutzer-Betriebssystem ist, da es mehr Studenten als Workstations gab. (Pigeonhole-Prinzip.)

Irgendwie weiß ich nach vielen Jahren der Verwendung im Grunde, was die umask(Standardeinstellung 002) ist und dass die Standardberechtigung eines Benutzers (und eines neuen Benutzers) 755für Ordner und 644Dateien gilt.

Nach einigem Nachdenken scheint die Standardberechtigungseinstellung in einem solchen Mehrbenutzer-Betriebssystem jedoch unsicher zu sein. Obwohl es das Teilen von Daten erleichtert, fühle ich mich immer noch seltsam, wenn Sie die Dateien anderer Benutzer einfach in ihrem Home-Verzeichnis auflisten und kopieren können.

Warum also die Standard-Umask 002 in vielen Unix-Systemen? Gibt es einen historischen Grund, warum traditionelles Unix dieses Design gewählt hat?

(Ein möglicher Grund, den ich mir vorstellen kann, ist, dass Computer zwischen 1970 und 1980 hauptsächlich in der wissenschaftlichen Forschung eingesetzt werden und die Rechenleistung sehr begrenzt ist. Als die frühe Version von Unix herauskam, entschieden sie, dass die Standardberechtigung einfach sein sollte Teilen statt Datenschutz.)

Bossliaw
quelle
3
Tatsächlich ist 002 ziemlich neu (wahrscheinlich ein Nebeneffekt bei der Verwendung von Gruppen pro Benutzer).
Thomas Dickey
@ThomasDickey also 022 ist häufiger?
Bossliaw
3
Es kommt darauf an (es gibt viele Ubuntu- und Fedora-Endbenutzer). Bis "vor kurzem" sehe ich im Änderungsverlauf für meine RC-Dateien, dass ich Debian 2001 dabei bemerkt habe. Das ist nur etwa ein Drittel der Zeitspanne seit Beginn von Unix. Bei bezahlter Arbeit ist 022 üblich (oder 077).
Thomas Dickey
@roaima Ich bin nicht derjenige, der für die Wiedereröffnung stimmt, vielleicht ist der Wähler an dieser Frage interessiert und möchte mehr mögliche Antworten oder Erklärungen sehen
Bossliaw

Antworten:

10

Unix wurde ursprünglich und lange Zeit in einem professionellen Umfeld eingesetzt. In einem professionellen Umfeld ist es sehr üblich, mit Kollegen am selben Thema zu arbeiten. Einige Dateien sind vertraulich. Zum Beispiel erstellt jedes E-Mail-Programm, das ich je gesehen habe, Dateien, die nur für den Eigentümer lesbar sind (Modus 600). Es ist jedoch sinnvoll, dass Dateien standardmäßig öffentlich lesbar sind: Die meisten Dateien sind nicht vertraulich.

Auf einem privaten Computer ist das Problem umstritten, da es nur einen Benutzer gibt.

Einige Systeme, bei denen mehrere Benutzer erwartet werden, die nicht viel zusammenarbeiten, verwenden 077 als Umask. Die Entscheidung liegt beim Systemadministrator.

Heutzutage sind Versionskontrollsysteme mit einem zentralen Repository, auf das über ein Netzwerkprotokoll zugegriffen wird, und mehreren Arbeitskopien (CVS, Subversion, Git, Mercurial usw.) weit verbreitet, sodass Benutzer seltener direkt auf dieselben Dateien zugreifen. Bis in die 1990er Jahre war dies weniger häufig, und Benutzer, die vergessen, Leseberechtigungen für Dateien zu erteilen, an denen andere arbeiten sollten, waren ein häufiges Problem.

Um sicherzustellen, dass Dateien auch dann privat sind, wenn Sie vergessen, ausgeführt zu werden chmod, legen Sie sie in einem privaten Verzeichnis ab, z

mkdir ~/private
chmod 700 ~/private

Niemand anderes (außer root natürlich) kann auf Dateien unter zugreifen ~/private, unabhängig von seinen Berechtigungen.

Gilles 'SO - hör auf böse zu sein'
quelle
2
Re letzten Punkt macOS: Es ist von Bedeutung , dass ~/Desktop/, ~/Documents/usw. (außer ~/Public/) haben alle Modus 700 (dh "drwx------"), dh sie sind private Verzeichnisse standardmäßig.
Drux