Witam, umiem i rozumiem na czym polegają chmody, problem mam z komenda umask, zupełnie nie rozumiem o co chodzi, wiem tylko, że ustawiają domyślne uprawnienia dla nowo dodanych katalogów i plików. W google znalazłem jakieś skomplikowane sposoby, znajomy mi kiedyś mówił, że jakoś się to odejmuje od chmodów i jest tak samo proste jak uprawnienia. Może mi ktoś wytłumaczyć, jak szybko obliczyć jakie będą uprawnienia po wpisaniu przykładowych umasków ? Obojętnie jaki przykład, może być umask 22
Na początek otwórz sobie terminal i wywołaj ponownie powłokę np. bash.
Teraz aby zrozumieć jak pracuje cały układ umask/chmod/..., wyzeruj umask przez:
umask 0000
Załóż katalog przez:
mkdir katalog
Wyświetl prawa przez:
ls -ald katalog
Jak widać prawa to rwxrwxrwx czyli ósemkowo 0777
Stwórz plik poprzez:
touch plik
Wyświetl jego prawa poprzez:
ls -al plik
Jak widać prawa do pliku to rw-rw-rw- czyli ósemkowo 0666
Wniosek: Katalogi są tworzone domyślnie (bez wpływu umask) z prawami 0777 a pliki z prawami 0666
No to teraz "zabawa" z umask.
Ustaw umask na wartość 0001 poprzez:
umask 0001
Załóż katalog poprzez:
mkdir katalog2
Wyświetl prawa katalogu poprzez:
ls -ald katalog2
Prawa katalogu to rwxrwxrw- czyli 0776 przy ustawionym umask na 0001
Załóż plik poprzez:
touch plik2
Wyświetl jego prawa poprzez:
ls -al plik2
Prawa pliku to rw-rw-rw- czyli 0666 przy ustawionym umask na 0001
Na początek potocznie:
Wniosek: Zapalony bit umask gasi odpowiedni bit domyślnych praw obiektu (plik lub katalog) jeśli był on w danym obiekcie ustawiony
Sprawdzenie:
umask 0700
mkdir katalog3
touch plik3
ls -ald katalog3
ls -al plik3
Prawa pliku to ---rw-rw- czyli 0066, a prawa katalogu to ---rwxrwx czyli 0066.
Wniosek: umask wykonuje na prawach operację:
prawa_obiektu AND ( NOT umask)
Czyli NAND :-)
do momentu sprawdzenia rozumiem, dlaczego umask 0700 powoduje dla katalogu 0066 a nie 0077 ?
Po co komu się uczyć tych 0666 skoro zapis rwx jest czytelniejszy.