Setguid
Hier sind 2 Kräfte am Werk. Das erste ist das Setgid-Bit, das für den Ordner aktiviert ist folder
.
drwxr-s---. user group folder
Das ist die s
in der Packung von Zeichen am Anfang dieser Zeile. Sie sind folgendermaßen gruppiert:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
Das r-s
bedeutet, dass für alle Dateien oder Verzeichnisse, die in diesem Ordner erstellt wurden, die Gruppe automatisch auf die Gruppe festgelegt wird group
.
Das ist , was die Dateien verursacht foo.txt
und bar.txt
wie so erstellt werden:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
Berechtigungen & umask
Die Berechtigungen, die Sie sehen, sind eine andere Sache. Diese richten sich nach den Einstellungen für Ihre umask
. umask
Mit dem Befehl können Sie sehen, auf was Sie eingestellt sind umask
:
$ umask
0002
HINWEIS: Diese Bits werden auch als "Modus" -Bits bezeichnet.
Es ist eine Maske, mit der alle Bits deaktiviert werden, die sich auf aktivierte Berechtigungen beziehen. In diesem Beispiel möchte ich nur die Schreibrechte für andere deaktivieren.
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
Die Darstellung der "Bits" in diesem Befehl erfolgt dezimal. Eine 2 entspricht also 010 in binärer Form, was das Schreibbit ist. Eine 4 (100) würde bedeuten, dass Sie das Lesen deaktivieren möchten. Eine 7 (111) bedeutet, dass Sie alle deaktivierten Lese- / Schreib- / Ausführungsfunktionen ausführen möchten. Aufbau von hier:
$ umask 007
Deaktiviert die Lese- / Schreib- / Ausführungsbits für andere Benutzer.
Was ist dann mit Ihren Dateien?
Nun, das umask
regelt die Berechtigungen, die gesetzt werden, wenn eine neue Datei erstellt wird. Wenn wir also folgendes umask
Set hätten:
$ umask 007
Und angefangen, neue Dateien zu berühren, sehen wir, wie sie so erstellt werden:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
Wenn wir es zu etwas anderem geändert haben, sagen Sie Folgendes:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Dies hat jedoch keine Auswirkungen auf Dateien, die wir bereits erstellt haben. Siehe hier:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Was ist dann mit dem Dateibrowser los?
Das umask
ist, was ich eine "weiche" Einstellung genannt hatte. Es ist keineswegs absolut und kann in Unix auf verschiedene Arten relativ einfach umgangen werden. Viele der Tools verfügen über Schalter, mit denen Sie die Berechtigungen als Teil ihrer Operation angeben können.
Nehmen Sie mkdir
zum Beispiel:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
Mit dem -m
Schalter können wir übersteuern umask
. Der touch
Befehl verfügt nicht über diese Funktion, sodass Sie kreativ werden müssen. Sehen Sie sich diese Fragen und Antworten zum Thema an : Können Dateien mit Berechtigungen erstellt werden, die in der Befehlszeile festgelegt wurden? für gerade solche Methoden.
Andere Möglichkeiten? Einfach überschreiben umask
. Der Dateibrowser tut dies höchstwahrscheinlich oder ignoriert umask
die Datei einfach vollständig und legt sie mit den Berechtigungen ab, für die er konfiguriert ist.