Czas czytania: 5 minut
Co to jest maska?
Maska, lub tryb tworzenia plików użytkownika, jest poleceniem Linuksa, które jest używane do przypisywania domyślnych zestawów uprawnień do plików dla nowo tworzonych folderów i plików. Termin maska odnosi się do grupowania bitów uprawnień, z których każdy określa, jak odpowiadające mu uprawnienia są ustawiane dla nowo tworzonych plików. Bity w masce mogą być zmienione przez wywołanie polecenia umask.
Kiedy używamy terminu umask, odnosimy się do jednego z dwóch poniższych znaczeń:
- Maska trybu tworzenia plików użytkownika, która jest używana do konfigurowania domyślnych uprawnień dla nowo tworzonych plików i katalogów
- Polecenie „umask”, które jest używane do ustawiania wartości umask
Jak zapewne już wiesz, wszystkie systemy operacyjne oparte na Uniksie mają zestaw właściwości, które są używane do określenia, kto ma prawo do odczytu, zapisu lub wykonania określonych plików lub katalogów. Istnieją trzy kategorie zwane „klasami uprawnień”, do których te uprawnienia się odnoszą i są one opisane w następujący sposób.
- Użytkownik: Użytkownik, domyślnie, jest właścicielem lub twórcą pliku lub folderu. Własność nowego pliku jest domyślnie przypisana do tego użytkownika.
- Grupa: Grupa jest zbiorem użytkowników, którzy dzielą ten sam poziom dostępu lub uprawnienia do pliku lub folderu.
- Other: Grupa Other jest definiowana jako każdy użytkownik nieuwzględniony w poprzednich dwóch kategoriach. Użytkownicy ci nie utworzyli pliku lub folderu, ani nie należą do określonej grupy użytkowników. Ta grupa obejmuje wszystkich, którzy nie są zidentyfikowani jako użytkownicy lub jako część grupy użytkowników. Kiedy ustawimy poziom uprawnień pliku lub folderu na Other, daje to dostęp do poziomu uprawnień każdemu, kto ma dostęp do tego pliku lub folderu.
Co więc dzieje się, kiedy użytkownik tworzy nowe pliki i katalogi? System automatycznie przypisuje następujące uprawnienia do pliku, jeśli użyjemy polecenia touch.
Jeśli utworzymy katalog, przypisuje mu następujący zestaw uprawnień,
Składnia polecenia umask
Pełny wpis na stronie man dla umask jest następujący.
umask The user file-creation mask is set to mode. If mode begins with a digit, it is interpreted as an octal number; otherwise it is interpreted as a symbolic mode mask similar to that accepted by chmod(1). If mode is omitted, the current value of the mask is printed. The -S option causes the mask to be printed in symbolic form; the default output is an octal number. If the -p option is supplied, and mode is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode was successfully changed or if no mode argument was supplied, and false otherwise.
Aby wyświetlić aktualną wartość umask, używamy polecenia umask. Uruchomienie polecenia umask samo w sobie zapewnia domyślne uprawnienia, które są przypisane, gdy plik lub folder jest tworzony.
# umask0022#
Aby zmienić te wartości, użyjemy następującego polecenia.
# umask #### umask 022
Symbole ### w pierwszym poleceniu są używane zamiast rzeczywistej liczby ósemkowej.
Poniżej możemy zobaczyć przetłumaczone wartości oktalne i jak są one powiązane.
Number | Permission |
---|---|
4 | read |
2 | write |
1 | execute |
Read | Write | Execute | Total Value | Symboliczny odpowiednik: |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
0 | 0 | 1 | 1 | x |
0 | 2 | 0 | 2 | w |
0 | 2 | 1 | 3 | wx |
4 | 0 | 0 | 4 | r |
4 | 0 | 1 | 5 | rx |
4 | 2 | 0 | 6 | rw |
4 | 2 | 1 | 7 | rwx |
Więc, kiedy uruchamiamy polecenie ls, wartości oktalne lub symboliczne uprawnień są wyświetlane na początku wyjścia.
# lsdrwxr-xr-x 2 root root 4096 Apr 21 12:54 test/-rw-r--r-- 1 root root 0 Apr 21 12:53 test.txt
Uprawnienia ustawione dla katalogu testowego to 755 lub 'rwx' 'r-x' 'r-x'.
Uprawnienia ustawione dla pliku test.txt to 644 lub 'rw -' 'r – -' 'r – -'.
Kreska oznacza wartość 0.
Nagłówki symboliczne
--- no permission--x execute-w- write-wx write and executer-- readr-x read and executerw- read and writerwx read, write and execute
Nagłówki numeryczne
Jak działa umask
Polecenie umask maskuje poziomy uprawnień poprzez zakwalifikowanie ich do określonej wartości. Aby wyjaśnić, w jaki sposób wartość umask jest stosowana, zilustrujemy to przykładem. Załóżmy, że chcemy ustawić domyślne uprawnienia dla wszystkich nowych plików lub folderów na 644 i 755. Użylibyśmy wtedy następującego polecenia.
# umask 022
Uprawnienie numer „2” (uprawnienie do zapisu) zostanie „odfiltrowane” z domyślnych uprawnień systemu 666 i 777 (stąd nazwa „maska”). Od tej pory system będzie przypisywał domyślne uprawnienia 644 i 755 do nowych plików i katalogów. Mówiąc prościej, aby obliczyć bity uprawnień dla nowego pliku lub katalogu, po prostu odejmujemy wartość umask od wartości domyślnej, tak jak poniżej.
- 666 – 022 = 644
- 777 – 022 = 755
Wartość domyślna : Permission
- 0 : odczyt, zapis i wykonanie
- 1 : odczyt i zapis
- 2 : read and execute
- 3 : tylko read
- 4 : write and execute
- 5 : tylko write
- 6 : tylko execute
- 7 : brak uprawnień
Możemy użyć powyższych informacji do obliczenia naszych uprawnień do plików. Na przykład, jeśli nasz umask jest ustawiony na 077, uprawnienia mogą być obliczone w następujący sposób:
Bit | Targeted at | Pozwolenie na pliki |
0 | Owner | read, write and execute |
7 | Group | No permissions |
7 | World | Brak uprawnień |
0 : read, write and execute
7 : no permissions
7 : no permissions
Umaska 000 sprawi, że nowo utworzone katalogi będą mogły być odczytywane, zapisywane i wykonywane przez wszystkich (uprawnienia będą wynosić 777).
Lokalizacja konfiguracji umask
W większości dystrybucji Linuksa, wartość umask może być znaleziona i skonfigurowana w następujących lokalizacjach:
- /etc/profile – tutaj przechowywane są domyślne zmienne systemowe
- /etc/bash.bashrc – tutaj przechowywane są domyślne pliki konfiguracyjne powłoki
Symbole umask
Jak zauważono na stronie man umask powyżej, możemy użyć specyficznych symboli do określenia wartości uprawnień, które chcemy ustawić. Aby wyświetlić aktualnie ustawioną wartość umask w symbolach, używamy następującego polecenia:
umask -S
Aby ją zmienić, możemy użyć polecenia, w którym litery „u”, „g” i „o” reprezentują użytkownika, grupę i inne lub świat, jak pokazano poniżej.
umask u=$, g=$, o=$
Przy ustawianiu uprawnień w ten sposób, uzupełniamy każdy „$” symbolem (symbolami) żądanego uprawnienia. Znak równości „=” nie jest jedynym operatorem, który mamy do dyspozycji przy ustawianiu umask z wartościami symbolicznymi. Możemy również użyć operatorów plus „+” i minus „-„.
- Symbol = pozwala na włączenie uprawnień, zakazując nieokreślonych uprawnień
- Symbol + pozwala na włączenie uprawnień, ignorując niesprecyzowane uprawnienia
- Symbol – zabrania włączania uprawnień, ignorując niesprecyzowane uprawnienia
Istnieje dodatkowy symbol, który może być użyty, gdy chcemy ustawić to samo uprawnienie dla wszystkich klas uprawnień jednocześnie (użytkownik, grupa i inne), a jest to:
umask a=
Podsumowanie
Teraz, gdy lepiej rozumiemy funkcję maski tworzenia trybu pliku użytkownika, możemy ją dobrze wykorzystać. Nie tylko oszczędza nam cenny czas i poprawia bezpieczeństwo, ale także zapewnia nam lepsze możliwości zarządzania uprawnieniami.
Zacznij już dziś!
Wciąż masz pytania jak wykorzystać umask? Zadzwoń do nas pod numer 800.580.4985, lub otwórz czat lub bilet, aby porozmawiać z jednym z naszych doświadczonych doradców ds. rozwiązań lub doświadczonych doradców ds. hostingu już dziś!