W momencie tworzenia pliku lub katalogu Linux przypisuje mu domyślne uprawnienia. Uprawnienia te są ustanawiane na podstawie uprawnień maski użytkownika (umask). Umask to trzy-cyfrowa wartość, która odnosi się uprawnień do czytania/zapisywania/wykonywania, jakie posiada właściciel, grupa i pozostali użytkownicy. Przeznaczeniem umask jest ustawianie domyślnych uprawnień dla nowych plików i katalogów tworzonych bez ingerencji w już istniejące pliki i katalogi. W RHEL umaską domyślą dla użytkownia root jest 0022, dla innych użytkowników z dostępem do powołoki bash domyślna umaska to 0002.
1 |
$ umask</code> <code>0002 |
Umask w notacji symbolicznej:
1 |
$ umask -S</code> <code> u=rwx,g=rwx,o=rx |
Predefiniowana inicjacyjna wartość dla uprawnień to 666 (rw-rw-rw) dla plików i 777 (rwxrwxrwx) dla katalogów. Jeżeli umask będzie ustawiony na 000 to nowe pliki będą dostawać uprawnienia 666.
Domyślne uprawnienia dla plików dla zwykłych użytkowników obliczamy w sposób następujący:
Inicjacyjne uprawnienia | 666 |
umask | – 002 |
Domyślne uprawnienia | 664 |
Domyślne uprawnienia dla katalogów dla zwykłych użytkowników obliczamy w sposób następujący:
Inicjacyjne uprawnienia | 777 |
umask | – 002 |
Domyślne uprawnienia | 775 |
Jeżeli zatem chcemy mieć inne uprawnienia domyślne dla plików i katalogów, należy zmodyfikować umask.
Załóżmy, że chcemy mieć uprawnienia domyślne dla katalogów 750 a dla plików 640. Wartość umask wyliczamy następująco:
777 – 750 = 027
666 – 640 = 027
A zatem:
1 2 3 4 |
$ umask 027 $ touch file10 $ ll file10 -rw-r-----. 1 user1 user1 0 Dec 1 08:48 file10 $ mkdir dir10 $ ll –d dir10 drwxr-x---. 2 user1 user1 6 Dec 1 08:48 dir10 |
Po wylogowaniu z systemu wartość umask zostanie utracona, aby utrzymać nową wartość umask należy ją ustawić w plikach startowych powłoki bash, np. /etc/profile
(dla wszystkich użytkowników) lub w pliku ~/.bashrc
(dla wybranych użytkowników).