Ich habe festgestellt, dass sich die Berechtigungen für neue Dateien und Verzeichnisse etwas seltsam verhalten. Zunächst scheint umask die richtige Antwort zu geben:
$ umask
0002
Dies bedeutet vollen Zugriff für meinen Benutzer und meine Gruppe, keinen Schreibzugriff für den Rest der Welt, kein Suid. Aber wenn ich eine Datei in meinem $ HOME erstelle, sieht es so aus:
$ ls -l testfile
-rw-rw-rw- 1 robe robe 0 mar 16 12:58 testfile
dh jedem Schreibzugriff gewähren. Das gleiche passiert mit Verzeichnissen:
$ ls -ld testdir
drwxrwxrwx 2 robe robe 6 mar 16 13:00 testdir
Ich denke, dies ist dasselbe wie mit umask 0000, nicht mit 0002. Ich habe alle / etc nach einer Instanz von umask durchsucht, die die Standardeinstellung 0002 oder 0022 ändert, aber keine gefunden. Dies ist eine Standardinstallation von CentOS 5.5. Gibt es einen Hinweis darauf, warum dies geschieht?
testfile
undtestdir
?Antworten:
Ich weiß nicht, ob es richtig ist, meine eigene Frage zu beantworten. Die Redakteure beraten Sie bitte, wenn dies nicht der Fall ist. Danke im Voraus.
Ich glaube, ich habe dieses Rätsel gelöst: Das Problem war das Fehlen einer Standard-ACL auf den XFS-Volumes. Hier ist der ACL-Eintrag für / srv / backups, eines der betroffenen Verzeichnisse:
Wann immer ich einen "mkdir-Test" oder eine "Touch-Testdatei" durchführte, wurden die Berechtigungen 777 angezeigt. Also tat ich Folgendes:
Verlassen Sie die ACL wie folgt:
Früher gab es (angeblich) keine ACL, jetzt gibt es sie. Ich kann das "+" - Zeichen sehen, das an die Berechtigungen angehängt ist, wenn ich ein "ls -l" mache. Und auf magische Weise arbeiten jetzt "mkdir test" und "touch testfile" mit den erwarteten Berechtigungen:
Ich weiß nicht, warum das passiert. Ich denke, XFS mag es nicht, keine Standard-ACL zu haben, und verhält sich seltsam, wenn es passiert. Außerdem habe ich gesehen, dass dies nur in CentOS passiert, nicht in Debian / Ubuntu. Vielleicht hängt es mit der XFS-Version im Kernel zusammen oder so ähnlich. Keine Ahnung.
Wie auch immer, das regelt den Fall für mich. Vielen Dank für alle Vorschläge :-)
quelle
Der Erstellungsaufruf kann explizit Berechtigungen angeben, die Vorrang vor umask haben.
Sie haben nicht geantwortet, wie Sie erstellen
testfile,testdir
.Erstellen Sie die Datei mit
touch testfile
, listen Sie die Berechtigungen auf und veröffentlichen Sie siequelle
Versuchen
getfacl .
Sie es in dem Verzeichnis, in dem Sie Ihre Testdatei erstellen, um festzustellen, ob eine Standard-ACL die Berechtigungen beeinflusst.quelle
Suchen Sie einfach nach der Variablen USERGROUPS_ENAB unter /etc/login.defs
Sie kommentieren, um es zu deaktivieren # USERGROUPS_ENAB yes
Wenn Sie auch die Umask Ihres aktuellen Benutzers ändern möchten, sollten Sie zuerst das vorherige Verfahren ausführen und diese die folgenden Schritte ausführen.
Beispiel für 027
echo "umask 027" >> ~ / .bashrc && pkill -KILL -u your_username_here
echo "umask 027" >> ~ / .bashrc Mit diesem Befehl wird ein umask-Standardwert für Ihr Profil festgelegt
Dadurch werden Sie gezwungen, sich abzumelden
nach erneutem Login
Führen Sie einfach den Befehl umask erneut aus und prüfen Sie, ob er für Sie funktioniert
quelle