Porady Admina: umask
Ostatnia aktualizacja: 17 czerwca 2024, 21:14
W dzisiejszym wpisie z cyklu Porady Admina zajmiemy się poleceniem umask.
umask wyświetla i ustawia maski uprawnień plików. Narzędzie umask służy do kontrolowania maski trybu tworzenia pliku, która określa początkową wartość bitów uprawnień do nowo tworzonych plików. Zachowanie tego narzędzia jest ustandaryzowane przez POSIX i opisane w Podręczniku programisty POSIX. Ponieważ umask wpływa na bieżące środowisko wykonawcze powłoki, zwykle jest implementowany jako wbudowane polecenie powłoki.
Maska trybu zawiera bity uprawnień, które nie powinny być ustawiane dla nowo utworzonego pliku, dlatego jest logicznym uzupełnieniem bitów uprawnień ustawionych dla nowo utworzonego pliku. Jeśli jakiś bit w masce jest ustawiony na 1, odpowiednie uprawnienia dla nowo utworzonego pliku zostaną wyłączone. Dlatego maska działa jak filtr usuwający bity uprawnień i pomaga w ustawianiu domyślnego dostępu do plików.
Ustawienie maski uprawnień tworzonych plików stosuje się na UPRAWNIENIA. Jeśli pominięto UPRAWNIENIA, wypisywana jest aktualna wartość maski.
Jeśli UPRAWNIENIA zaczynają się od cyfry, są interpretowane jako liczba ósemkowa; w przeciwnym wypadku jako łańcuch symbolicznych uprawnień, jak w poleceniu chmod.
Składnia
umask [-p] [-S] [uprawnienia]
Opcje
-p : jeśli pominięto UPRAWNIENIA, wypisywanie w formie nadającej się do ponownego użycia jako wejście
-S : wyjście w postaci symbolicznej; bez tej opcji jest ósemkowe
Uprawnienia
|
Uprawnienia
|
Wartość ósemkowa
|
Wartość binarna
|
Brak pozwolenia
|
–
|
0
|
000
|
Pozwolenie na wykonanie
|
-x
|
1
|
001
|
Pozwolenie na zapis
|
-w-
|
2
|
010
|
Pozwolenie na zapis i wykonanie
|
-wx
|
3
|
011
|
Pozwolenia na odczyt
|
r-
|
4
|
100
|
Pozwolenie na odczyt i wykonanie
|
r-w
|
5
|
101
|
Pozwolenie na odczyt i zapis
|
rw-
|
6
|
110
|
Pozwolenie na odczyt, zapis i wykonanie
|
rwx
|
7
|
111
|
Jak obliczyć wartość umask?
umask
0002
Pierwsza cyfra 0, nazywana jest bitem trwałym i jest to specjalna funkcja bezpieczeństwa. Następne trzy cyfry reprezentują wartości ósemkowe umaski dla pliku lub katalogu.
W powyższym przykładzie komenda umask wypisuje 0002, na razie nie będziemy się martwić o pierwsze 0.
Następne trzy cyfry to 002.
Każda cyfra oznacza inną klasę użytkowników. W systemie Linux istnieją w sumie 3 klasy użytkowników,
– właściciel
– członkowie grupy
– wszyscy inni
Powyższe dane wyjściowe 002 pokazują, że dostęp do właściciela wynosi 0, dostęp do członków grupy wynosi 0, a dostęp do wszystkich wynosi 2. To 2 jest wartością ósemkową. Aby zrozumieć uprawnienia dostępu, musielibyśmy przekonwertować go na system dziesiętny, 2 równa się 010 w formacie binarnym, co można wyjaśnić na: 0 dla odczytu, 1 dla zapisu i 0 dla wykonania.
Powyższy wynik mówi: tylko uprawnienia do zapisu dla wszystkich.
Przykłady
Możemy ustawić i zaktualizować domyślną wartość umask za pomocą polecenia umask, po którym następuje parametr, który powinien być liczbą całkowitą z zakresu 000-777.
umask 543
Kiedy tworzymy nowy katalog, uprawnienia zostaną obliczone jako pełne uprawnienia do katalogu – wartość umask, tj. 777 – 543 = 234, co można wyjaśnić jako:
– 2 dla właściciela, czyli 010 w formacie binarnym, więc uprawnienia do zapisu dla właściciela.
– 3 dla członków grupy, czyli 011 w formacie binarnym, więc uprawnienia do zapisu i wykonywania dla członków grupy.
– 4 dla wszystkich pozostałych, czyli 100 w formacie binarnym, więc tylko uprawnienia do odczytu dla wszystkich pozostałych.
ls -lh
d-w--wxr--
Wynik pokazuje: d tutaj oznacza katalog, a ostatnie 3 to uprawnienia dla odpowiednim użytkownikom.
Za pomocą umask można także używać notacji symbolicznych. Poniżej w poleceniu „umask u-w” „u” oznacza użytkownika, „-” służy do usuwania uprawnień, a „w” oznacza pozwolenie na zapis.
umask u-w
Użycie symbolu „+” zamiast „-” przyzna użytkownikowi odpowiednie uprawnienia. Możesz także użyć „r”, które służy do pozwolenia na odczyt. tj. umask u+rw
umask u+w
Więcej informacji o poleceniu umask uzyskasz wpisując:
man umask
umask --help