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 ssh
an 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) 755
für Ordner und 644
Dateien 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.)
quelle
Antworten:
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, zNiemand anderes (außer root natürlich) kann auf Dateien unter zugreifen
~/private
, unabhängig von seinen Berechtigungen.quelle
~/Desktop/
,~/Documents/
usw. (außer~/Public/
) haben alle Modus 700 (dh"drwx------"
), dh sie sind private Verzeichnisse standardmäßig.