Oftmals, wenn umask erklärt wird, werden da irgendwelche oktalen Zahlen voneinander abgezogen. Meistens funktioniert das, aber eben nicht immer. Heir steht, wie es wirklich geht:
Generell gilt, dass für die umask für Files die Berechtigung 666 angenommen wir und für Directories die Berechtigung 777. Das ist vom System so vorgegeben.
Nun handelt es sich bei umask um eine bitweise logische Operation, genauer gesagt eine logische Verknüpfung aus NOT und AND.
Wenn ein File anlegt wird, so hat es zunächst, ohne umask, die Berechtigung 666. Wenn die umask nun auf 777 steht, würden "mehr" Rechte entzogen als da sind, wenn man einfach eine Subtraktion verwendet.
Die logische Operation sieht so aus: NICHT die Berechtingung der umask UND Berechtigung vom System.
Für ein File das erstellt werden soll kommt also folgendes dabei raus:
(Betrachtung des ersten Bits der Oktalzahl)
Code:
7 6 0 6 0
NOT(111) AND (110) = (000) AND (110) = (000)
Nun ein komplettes Beispiel, umask 023 für Directories und Files:
Code:
Directory:
0 2 3 7 7 7 7 5 4 7 7 7 7 5 4
NOT (000 010 011) AND (111 111 111) = (111 101 100) AND (111 111 111) = (111 101 100) = oct 754
File:
0 2 3 6 6 6 7 5 4 6 6 6 6 4 4
NOT (000 010 011) AND (110 110 110) = (111 101 100) AND (110 110 110) = (110 100 100) = oct 644
umask 765:
Code:
Directory:
7 6 5 7 7 7 0 1 2 7 7 7 0 1 2
NOT (111 110 101) AND (111 111 111) = (000 001 010) AND (111 111 111) = (111 101 100) = oct 012
File:
7 6 5 6 6 6 0 1 2 6 6 6 0 0 2
NOT (111 110 101) AND (110 110 110) = (000 001 010) AND (110 110 110) = (000 000 010) = oct 002
Lesezeichen