Umask – uprawnienia dla nowo tworzonych plików w Linux

Linux ma określone zasady nadawania uprawnień nowo tworzonym plikom i katalogom. W momencie utworzenia system przypisuje im właściciela, grupę oraz początkowe prawa dostępu. Właścicielem nowego pliku lub katalogu zostaje zwykle użytkownik, który go utworzył, a przypisana grupa to najczęściej jego podstawowa grupa. Same uprawnienia wynikają natomiast z wartości domyślnych, które są następnie ograniczane przez umask.

Jak działa umask

Umask to maska określająca, jakie uprawnienia mają zostać odebrane nowym plikom i katalogom przy ich tworzeniu. Najczęściej spotykaną wartością dla umask jest 022, a jej działanie polega na ograniczeniu początkowych praw dostępu przypisywanych przez system.

Domyślne ustawienia umask

Dla zwykłych plików system przyjmuje zazwyczaj maksymalny zestaw uprawnień, z wartością początkową 666, natomiast dla katalogów 777. Następnie od tych wartości odejmowany jest umask, a końcowy wynik wyznacza rzeczywiste uprawnienia nowego pliku lub katalogu. Dzięki temu system automatycznie nadaje bardziej bezpieczne i przewidywalne ustawienia dostępu.

Przykładowo przy ustawieniu umask 022 nowy plik otrzyma uprawnienia 644, a nowy katalog 755. Dzięki temu tylko właściciel może modyfikować plik, natomiast inni użytkownicy mogą go jedynie odczytywać. To sprawia, że nowo dodawane pliki i katalogi mają od razu bezpieczniejsze ustawienia i nie są domyślnie dostępne do modyfikacji dla wszystkich użytkowników.

Zmiana umask

Tymczasowa zmiana

Wartość umask można zmienić tymczasowo dla bieżącej sesji powłoki za pomocą polecenia:

umask [nowa_wartość]

Taka zmiana działa tylko do momentu zamknięcia terminala lub zakończenia sesji.

Trwała zmiana dla powłoki

Aby ustawić umask na stałe dla uruchamianej powłoki, można dodać polecenie umask do jednego z plików startowych shella, na przykład ~/.bashrc.

umask 027

Dzięki temu wybrana wartość będzie ustawiana automatycznie przy każdym nowym uruchomieniu sesji terminalowej.

Trwała zmiana dla całego systemu lub logowania użytkownika

Jeśli chcesz zmienić umask w sposób bardziej ogólny, tak aby wpływał także na inne programy i nowe sesje graficzne, zwykle robi się to w pliku /etc/login.defs. Po takiej zmianie może być konieczne wylogowanie i ponowne zalogowanie się, aby nowe ustawienia zaczęły obowiązywać.

Opcja USERGROUPS_ENAB

Jak wspomniano wyżej, domyślną wartość umask można zmienić w konfiguracji systemu, najczęściej w pliku /etc/login.defs. To ustawienie decyduje o tym, jakie uprawnienia będą domyślnie odbierane nowo tworzonym plikom i katalogom. Domyślna wartość to zwykle 022.

W tym samym pliku można spotkać także opcję USERGROUPS_ENAB. Gdy ma ona wartość yes, a podstawową grupą użytkownika jest grupa o tej samej nazwie co jego login, system zakłada, że grupa ta w praktyce należy tylko do tego jednego użytkownika i traktuje ją jako „prywatną” grupę. Dzięki temu wartość umask stosowana dla podstawowej grupy użytkownika może zostać zmieniona, na przykład z 022 na 002 albo z 077 na 007. W efekcie podstawowa grupa użytkownika zachowuje więcej uprawnień do nowo tworzonych plików i katalogów i może otrzymać takie same uprawnienia jak właściciel, co ułatwia pracę z plikami tworzonymi w ramach własnej grupy.

Umask pełni ważną rolę w kontroli bezpieczeństwa i prywatności danych, ponieważ pozwala administratorowi lub użytkownikowi ustalić domyślny poziom dostępu do nowych plików bez konieczności ręcznego ustawiania uprawnień za każdym razem.

Author: Joanna

Piszę kody, które (zazwyczaj) działają. Tresuję Wordpressa, kodzę z Reactem, zgłębiam świat DevOps i klikam w konsoli Linuxa. Hobbystycznie optymalizuję kod, bo lenistwo to najczystsza forma produktywności. Staram się nie zwariować między bugiem a deadlinem.

Może Cię zainteresować

Powiązane posty