[linux-l] rwx wird bei mir nix

Lutz Willek lutz.willek at belug.de
Sa Mär 16 15:31:12 CET 2013


Am 16.03.2013 14:43, schrieb Boris Kirkorowicz:
> Hallo,
>
> Am 16.03.2013 14:17, schrieb Lutz Willek:
>> umask 0007
>
> das klingt verlockend einfach und scheint auch auf der Kommandozeile das
> gewünschte Ergebnis zu bringen (auch wenn ich noch nicht genau
> verstanden habe, wie das funktioniert).

Schau Dir mal folgendes an:

> root at vm:~# mkdir test
> root at vm:~# cd test/
> root at vm:~/test# umask
> 0022
> root at vm:~/test# touch testdatei
> root at vm:~/test# ls -l testdatei
> -rw-r--r-- 1 root root 0 Mär 16 14:53 testdatei
> root at vm:~/test# umask 0007
> root at vm:~/test# touch testdatei2
> root at vm:~/test# ls -l testdatei2
> -rw-rw---- 1 root root 0 Mär 16 14:54 testdatei2
> root at vm:~/test# cd ..
> root at vm:~# rm test/testdatei* ; rmdir test

Puh, wie erklärt man umask?

Also dir Unixrechte lesen, schreiben, ausführen, kurz rwx, lassen sich 
auch in Zahlen darstellen: 4=r, 2=w, 1=x.

Zahlen lassen sich addieren. Möchtest Du bspw. die Rechte rwx haben, so 
addierst Du 4+2+1=7. Damit ist dann eine wesentlich kürzere Darstellung 
der Rechte möglich: Anstatt "rwx", einfach "7".

Rechte eines Objektes werden immer in Benutzerrechte, Gruppenrechte, 
Rechte aller anderen angegeben.

Wenn Du einer Datei also Lese-und Schreibrechte für alle geben möchtest, 
dann wäre das: rw-rw-rw-, oder kurz 660.
Wenn Du einer Datei alle Rechte für alle geben möchtest, dann wäre das: 
rwxrwxrwx, oder kurz 777.

Die umask ist die "Standard"-Rechte-Einstellung, und die lässt sich 
verändern. Dabei wird bei umask angegeben, wie viel von den 
Maximalrechten abgezogen werden soll, nicht die Rechte selbst! Das fürt 
dann zu folgender Rechtetabelle für umask:

0 	read, write and execute
1 	read and write
2 	read and execute
3 	read only
4 	write and execute
5 	write only
6 	execute only
7 	no permissions

Beipiel: Das Maximalrecht ist rwx, also 7. Bei einer umask von 1 wäre 
das dann 7-1=6, also 4+2, also rw-.

Die umask gibst Du mindestens für user,group,others an, also wie in 
meinem Beispiel 007. Dies ergibt dann folgendes:
> lutz at vm:~$ umask 007
> lutz at vm:~$ umask
> 0007
> lutz at vm:~$ umask -S
> u=rwx,g=rwx,o=

Und dann gibt es noch die "Spezialrechte", die der umask vorangestellt 
werden. Aber dafür ist es wohl besser Du liest Dir einen beliebigen 
Wikipediaeintrag zum Thema durch, sonst schreibe ich mir die Finger 
wund... Suchworte sind hier suid und sgid sowie stickybit.


> Wo schreibe ich das am besten
> hin, damit es für alles gilt?

Also gesetzt den Fall Du willst das wirklich, dann findest Du den Ort, 
indem Du Dir die Doku zum Thema durchliest, und anschließend die Doku, 
wie das momentane Environment Deiner verwendeten Shell konfiguriert 
wird. Ich möchte damit sicher gehen, dass Du verstanden hast, dass eine 
systemweite umask von 0007 nicht die beste Idee ist, deshalb verrate ich 
nicht die Stelle. Anhand der Doku wirst Du diese finden.

lg Lutz




Mehr Informationen über die Mailingliste linux-l