Umask działa jako zestaw uprawnień, których aplikacje nie mogą ustawić dla plików. Jest to maska do tworzenia trybów plików dla procesów i nie można jej ustawić dla samych katalogów. Większość aplikacji nie tworzy plików z ustawionymi uprawnieniami do wykonywania, więc będą miały wartość domyślną 666
, która jest następnie modyfikowana przez umask.
Ponieważ ustawiłeś umask, aby usuwał bity odczytu / zapisu dla właściciela i bity odczytu dla innych, domyślnym ustawieniem, takim jak 777
w aplikacjach, byłyby uprawnienia do plików 133
. Oznaczałoby to, że Ty (i inni) możesz wykonać plik, a inni będą mogli do niego pisać.
Jeśli chcesz, aby pliki nie były odczytywane / zapisywane / wykonywane przez nikogo innego niż właściciela, powinieneś użyć umask, 077
aby wyłączyć te uprawnienia dla grupy i innych osób.
W przeciwieństwie do tego, umask of 000
sprawi, że nowo utworzone katalogi będą czytelne, zapisywalne i dostępne dla każdego (uprawnienia będą 777
). Taki umask jest bardzo niepewny i nigdy nie powinieneś ustawiać go 000
.
Domyślnym umask na Ubuntu było 022
to, że nowo utworzone pliki są czytelne dla wszystkich, ale tylko do zapisu przez właściciela:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
Począwszy od Ubuntu Oneiric (11.10) domyślna umask została zrelaksowana 002
, co rozszerza dostęp do zapisu do grupy właściciela:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Przeglądanie i modyfikowanie umask
Aby wyświetlić bieżące ustawienie umask, otwórz terminal i uruchom polecenie:
umask
Aby zmienić ustawienie umask bieżącej powłoki na coś innego, powiedz 077, uruchom:
umask 077
Aby sprawdzić, czy to ustawienie działa, czy nie, możesz utworzyć nowy plik (nie wpłynie to na uprawnienia do istniejącego pliku) i wyświetlić informacje o pliku, uruchom:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
Ustawienie umask jest dziedziczone przez procesy uruchomione z tej samej powłoki. Na przykład uruchom edytor tekstu GEdit, uruchamiając go gedit
w terminalu i zapisz plik za pomocą gedit. Zauważysz, że na nowo utworzony plik ma wpływ to samo ustawienie umask, co w terminalu.
Przypadek użycia: system dla wielu użytkowników
Jeśli korzystasz z systemu współdzielonego przez wielu użytkowników, pożądane jest, aby inni nie mogli czytać plików w twoim katalogu domowym. W tym celu umask jest bardzo przydatny. Edytuj ~/.profile
i dodaj nową linię za pomocą:
umask 007
Musisz ponownie zalogować się, aby ta zmiana umask w została ~/.profile
zastosowana. Następnie musisz zmienić istniejące uprawnienia do plików w katalogu domowym, usuwając bit odczytu, zapisu i wykonania dla świata. Otwórz terminal i wykonaj:
chmod -R o-rwx ~
Jeśli chcesz zastosować to ustawienie umask do wszystkich użytkowników w systemie, możesz edytować plik profilu systemowego pod adresem /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-