Uprawnienia domyślne - maska

6 kwietnia 2025 14:19

Maska

W Linuxie istnieją uprawnienia domyślne, z których są tworzone nowe pliki oraz katalogi. Uprawnienia te możemy edytować. Sposób zapisu takich uprawnień domyślnych jest nazywany maską. Maske zapisuje się zazwyczaj w systemie ósemkowym i pokazuje ona różnicę uprawnień, czyli to co zabiera.

Domyślna maska w Ubuntu to 022. Przedstawia ona znowu 3 podmioty: właściciela, grupe oraz pozostałych. Jeżeli zamienimy zapis ósemkowy na symboliczny to dowiemy się, jakie uprawnienia są domyślne odbierane i dla jakich podmiotów.

Właściciel Grupa Pozostali
0 2 2
--- -w- -w-

Wynika z tego, że domyślnie grupa oraz pozostali nie mają domyślnie nadanego uprawnienia do zapisu.

Różnica między plikiem, a katalogiem

W Linuxie pliki i katalogi bazują z innych uprawnień. Pliki, z racji takiej że mogą być programami lub skryptami nigdy nie mają domyślnie nadanego uprawnienia do wykonywania, katalogi natomiast takich ograniczeń nie mają z powodu, że uprawnienie do wykonywania na katalogu jest wymagane aby można było wejść w ten katalog i edytować w nim inne zasoby.

Wynika z tego, że bazowymi uprawnieniami dla katalogów jest 777, a dla plików 666 ponieważ uprawnienie do wykonywania zapisujemy jako 1 w systemie oktalnym.

Zasób Katalog Plik
Uprawnienia bazowe 7 7 7 6 6 6
Maska (różnica) 0 2 2 0 2 2
Uprawnienia domyślne 7 5 5 6 4 4
Zapis symboliczny rwx r-x r-x rw- r-- r--

Polecenie umask

Poleceniem umask możemy podejrzeć obecną maskę oraz ją zmienić.

Wyświetlenie maski w zapisie oktalnym

Domyślnie będzie to 0022, ignorujemy pierwsze 0 w tym przypadku. Jest to bit specjalny, w który nie będziemy się zagłębiać.

Wyświetlenie maski w zapisie symbolicznym

Jeżeli chcemy wyświetlić maskę w zapisie symbolicznym musimy użyć opcji -S.

W ten sposób nie pokazuje już nam różnicy, a rzeczywiste domyślne uprawnienia. Uprawnienia te wywodzą się od 777, dlatego trzeba pamiętać, że dla plików będą te same uprawnienia tylko bez x dla każdego podmiotu.

Zmiana maski

Aby zmienić maskę wystarczy po poleceniu umask podać nową maskę w zapisie oktalnym.

W ten sposób zmieniłem maskę z 022 (zabierz zapis g oraz o) na 044 (zabierz odczyt dla g oraz o).

Jeżeli teraz utworzymy jakis plik, czy katalog to ten zasób będzie miał już nowe uprawnienia domyślne

Jak widać dla pliku oraz katalogu teraz jest zabierane uprawnienie do odczytu, a nie do zapisu. 

Ważność nowej maski

Nasza nowa maska jest tylko ważna w trakcie danej sesji terminala. Jeżeli zamkniemy okno lub wylogujemy się/zrestartujemy komputer to maska wraca do bazowej 022.