Nachteile von umask 077?

14

Was sind die Nachteile einer restriktiven Umask von 077? Viele Distributionen (ich glaube alle, außer Red Hat?) Haben eine Standard-Umask von 022, die in / etc / profile konfiguriert ist. Dies scheint für ein Nicht-Desktop-System, auf das mehrere Benutzer zugreifen, viel zu unsicher zu sein, und die Sicherheit ist von Belang.

In Ubuntu werden die Home-Verzeichnisse der Benutzer ebenfalls mit 755-Berechtigungen erstellt, und das Installationsprogramm gibt an, dass dies dazu dient, Benutzern das Freigeben von Dateien zu erleichtern. Vorausgesetzt, Benutzer können die Berechtigungen für die gemeinsame Nutzung von Dateien bequem von Hand festlegen, ist dies kein Problem.

Welche anderen Nachteile gibt es?

K. Norbert
quelle
Berechtigungen scheint es eher als "umask" für Tags ... imo
Xenoterracide
Sie können bis zu 5 Tags für eine Frage haben. Warum also darum streiten? :) Das umask-Tag wurde hinzugefügt.
Warren Young
@ Warren, weil ich glaube nicht, dass wir Tags für jedes einzelne Substantiv brauchen. Wenn Sie unter Unix über Berechtigungen sprechen, müssen Sie umask einbinden.
Xenoterracide

Antworten:

15

022 macht es bequem. 077 macht die Dinge weniger bequem, aber abhängig von den Umständen und dem Verwendungsprofil ist es möglicherweise nicht weniger bequem als die Verwendung sudo.

Ich würde argumentieren, dass sudoder tatsächliche, messbare Sicherheitsnutzen, den Sie daraus ziehen, im Vergleich zu dem Grad der Schmerzen, die Sie sich selbst und Ihren Benutzern zufügen, vernachlässigbar ist. Als Berater wurde ich für meine Ansichten verachtet sudound aufgefordert, zahlreiche sudoSetups zu unterbrechen, und ich habe dafür noch mehr als 15 Sekunden Zeit. Ihr Anruf.

Zu wissen umaskist gut, aber es ist nur eine Corn Flakes im "kompletten Frühstück". Vielleicht sollten Sie sich die Frage stellen: "Bevor ich mich mit Standardkonfigurationen beschäftige, muss deren Konsistenz über Installationen hinweg beibehalten werden, und sie müssen dokumentiert und für Leute gerechtfertigt werden, die nicht schlecht drauf sind, was sie kaufen werden mir?"

Umask ist auch eine integrierte Bash, die von einzelnen Benutzern in ihren Shell-Initialisierungsdateien ( ~/.bash*) festgelegt werden kann, sodass Sie das nicht wirklich einfach erzwingen können umask. Es ist nur eine Voreinstellung. Mit anderen Worten, es kauft dir nicht viel.

Jonesy
quelle
2

Der offensichtlichste Nachteil ist, wenn Sie Dateien / Verzeichnisse in einem freigegebenen Verzeichnis erstellen und erwarten, dass andere Benutzer darauf zugreifen.

Natürlich ist es nur eine Frage, nicht zu vergessen, die richtige umask zu setzen, bevor Sie Dinge tun, die von allen Benutzern geteilt werden müssen.

Eine weitere Einschränkung (nicht wirklich ein Nachteil, wenn Sie sich dessen bewusst sind) besteht darin, dass Sie mit Sudo-Aufgaben beginnen, z. B. mit der Installation lokaler Programme, Ruby Gems, Python-Eiern (offensichtlich keine OS-Verwaltungspakete), dem Erstellen von Konfigurationsdateien usw.

Sie werden in Schwierigkeiten geraten, da die umask von der sudo-Sitzung geerbt wird, sodass nur root auf die von Ihnen erstellten Dateien / Verzeichnisse zugreifen kann. sudo kann so konfiguriert werden, dass die umask automatisch wie gewünscht eingestellt wird: Diese Frage wird auf superuser.com behandelt .

zarkdav
quelle
und der letztere Grund ist ein guter Grund, su -um sicherzustellen, dass root eine andere umask hat ... aber oh ... Ubuntu glaubt nicht an root ...
Xenoterracide
1
@ xenoterracide: sudo su -funktioniert gut. Ubuntu glaubt wie MacOSX nicht an ein Root-Verzeichnis, in das Sie sich einfach einloggen können. Persönlich mag ich es, die meiste Zeit etwas wie "Simon Says" für root-Befehle zu sagen.
David Thornley
@xenoterracide wie? worauf willst du hinaus? Sowohl sudo als auch su lassen zu, dass root eine andere umask hat. @ David Sie können Sudo -i anstelle von Sudo Su -
Zarkdav
1
@xenoterracide: Wenn ich den root-Befehl verwende, tippe ich wahrscheinlich etwas in das falsche Fenster. Die Verwendung von "sudo" bedeutet, dass ich angeben muss, dass dies von root ausgeführt werden soll. Ich weiß genau, dass es einen Root-Account gibt, daher verstehe ich nicht, woher das falsche Sicherheitsgefühl kommt. Es ist nur ein weiteres kleines Ritual (wie das Sitzen auf meinen Händen), das es weniger wahrscheinlich macht, dass ich als Root etwas tödlich Dummes mache.
David Thornley
1
sudo und su sind Werkzeuge wie jeder Befehl. Keine Notwendigkeit, Gefühle mit Nutzen zu mischen. sudo bietet su eine flexible Konfiguration, Prüfung und Benutzerfreundlichkeit. Natürlich muss man die verschiedenen Möglichkeiten kennen und tatsächlich brauchen, um die Vorteile zu erkennen. Ich denke, dieses "falsche Sicherheitsgefühl", von dem Sie sprechen, sollte besser auf die Ubuntu-Richtlinie "root account disabled" abzielen. Das ist der Unterschied zwischen einem Tool und einer Richtlinie. Man kann gute Argumente gegen eine Politik vorbringen. Die Nützlichkeit eines Tools zu verweigern, weil man mit einer Richtlinie nicht einverstanden ist, ist eindeutig falsch.
Zarkdav
1

Umask ist nicht geeignet, wenn Sie versuchen, zu steuern, was andere Benutzer voneinander sehen können. Wenn Sie jedoch über zahlreiche Dateien verfügen und mit diesen arbeiten, die für den Punkt sensibel sind, an dem es weniger störend / riskant ist, die Erlaubnis zum Zugriff auf diese Dateien einzuholen, als nur die Leute sehen zu lassen, was sie wollen, dann ist eine umask von 077 eine gute Idee.

Ich habe einige vertrauliche Dateien auf einem von mir verwalteten Dateiserver. Ich denke, eine restriktive umask zu setzen und dann ein periodisches Skript zu haben, vielleicht ein Cron-Job, um spezifischere Berechtigungen für Elemente in bestimmten Ordnern zu setzen, wäre eine ideale Lösung für mich. Wenn ich das eingerichtet habe, werde ich wieder hier posten und Sie wissen lassen, wie es funktioniert hat.

@ [The guys bashing sudo] Starte einen neuen Thread dafür, es könnten mehrere eigene Threads nötig sein und dieser Thread handelt von umask.

Sqeaky
quelle
1

Anwendungen von Drittanbietern, die ihre eigenen Installationssysteme verwenden, haben möglicherweise integrierte Annahmen zur Systemstandardeinstellung umask.

Als praktisches Beispiel: Nach der Aktualisierung einer Oracle 10-Datenbank auf einem System, auf dem die umask auf 077 festgelegt war, konnten die Anwendungen auf demselben System nicht auf die Datenbank zugreifen, da die für die Datenbankclients wichtigen Bibliotheken und die Verzeichnisse die Bibliotheken waren befanden sich in, waren nun geschützt, so dass nur der oracleBenutzer darauf zugreifen konnte, was offensichtlich nicht so war, wie es funktionieren sollte.

Es stellte sich heraus, dass der Oracle Updater-Prozess nicht speziell darauf geachtet hat, dass die Berechtigungen der Client-Bibliotheken es anderen Benutzern ermöglichen, sie zu verwenden, sondern sich stattdessen auf die Annahme stützte, dass die vom Updater hinzugefügten Dateien mit umask 022 erstellt und somit verwendbar sind standardmäßig. Nach ein paar vernünftigen chmod -R a+rXBefehlen für die entsprechenden Verzeichnisse war alles wieder in Ordnung .

Zugegeben, dies hätte vermieden werden können, indem das oracleKonto als spezielles Systemkonto mit Standard-umask 022 behandelt und die umask 077 auf tatsächlich anmeldungsfähige Benutzerkonten beschränkt wurde ... aber ich denke, dies ist ein gutes Beispiel dafür, wie umfassend "gehärtet" wird "entscheidungen können unvorhergesehene nebeneffekte haben.

.rpmund .debPakete tragen die ausdrückliche Erlaubnis der Informationen für alle Dateien , die sie enthalten, so dass sie nicht generell das Risiko von Fehlern dieser Art haben.

telcoM
quelle
0

Ich habe diese Zeile in meinem ~/.zshrc

umask 0077

Es ist wahrscheinlich keine gute Idee, es global festzulegen, aber es wird wahrscheinlich nicht schaden, es als Standard in Ihrer RC-Datei festzulegen, oder es wird sogar als Standard in der /etc/skel/.rcDatei festgelegt. Systemweit wird es jedoch Probleme geben.

Xenoterracid
quelle
0

Es wird Probleme auf einem Server verursachen; Zum Beispiel, wenn mehrere Anwendungen als unterschiedliche Benutzer ausgeführt werden und versuchen, auf Dateien von unterschiedlichen Benutzern zuzugreifen. Wie Apache-Lesekonfigurationsdateien oder Pi-Hole-Lesekonfiguration dnsmasq.conf. Führen Sie es einfach auf Benutzern aus, die davon profitieren könnten, wie z. B. auf einzelnen Basisverzeichnissen, die nicht explizit festgelegt sind /etc/profile.

arst
quelle