Android

Polecenie Umask w systemie Linux

Kurs Linux Polecenia - lekcja 11 - Przekierowania i potoki

Kurs Linux Polecenia - lekcja 11 - Przekierowania i potoki

Spisu treści:

Anonim

W systemach operacyjnych Linux i Unix wszystkie nowe pliki są tworzone z domyślnym zestawem uprawnień. Narzędzie umask umożliwia przeglądanie lub ustawianie maski tworzenia trybu plików, która określa bity uprawnień dla nowo tworzonych plików lub katalogów.

Używają go mkdir, touch, tee i inne polecenia tworzące nowe pliki i katalogi.

Uprawnienia do systemu Linux

Zanim przejdziemy dalej, wyjaśnijmy krótko model uprawnień systemu Linux.

W systemie Linux każdy plik jest powiązany z właścicielem i grupą i przypisany do niego uprawnienia dostępu dla trzech różnych klas użytkowników:

  • właściciel pliku. członkowie grupy. wszyscy inni.

Istnieją trzy typy uprawnień, które dotyczą każdej klasy:

  • uprawnienia do odczytu. uprawnienia do zapisu. uprawnienia do wykonywania.

Ta koncepcja pozwala określić, którzy użytkownicy mogą czytać plik, zapisywać do pliku lub uruchamiać plik.

Aby wyświetlić uprawnienia do plików, użyj polecenia ls :

ls -l dirname

drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type

Pierwszy znak reprezentuje typ pliku, którym może być zwykły plik ( - ), katalog ( d ), symboliczny link ( l ) lub dowolny inny specjalny typ pliku.

Następne dziewięć znaków reprezentuje uprawnienia, trzy zestawy po trzy znaki każdy. Pierwsze zestawy pokazują uprawnienia właściciela, drugie uprawnienia grupy, a ostatni zestaw pokazuje uprawnienia wszystkich pozostałych.

Znak r o wartości ósemkowej 4 oznacza odczyt, w o wartości ósemkowej 2 dla zapisu, x o wartości ósemkowej 1 dla zezwolenia na wykonanie i ( - ) o wartości ósemkowej 0 dla braku uprawnień.

Istnieją również trzy inne specjalne typy uprawnień do plików: setuid , setgid i Sticky Bit .

W powyższym przykładzie ( rwxr-xr-x ) oznacza, że ​​właściciel ma uprawnienia do odczytu, zapisu i wykonywania ( rwx ), grupa i inni mają uprawnienia do odczytu i wykonywania.

Jeśli reprezentujemy uprawnienia do pliku za pomocą notacji numerycznej, dojdziemy do liczby 755 :

  • Właściciel: rwx = 4+2+1 = 7 Grupa: rx = 4+0+1 = 5 Inne: rx = 4+0+1 = 5

W przypadku reprezentacji w notacji numerycznej uprawnienia mogą mieć trzy lub cztery cyfry ósemkowe (0–7). Pierwsza cyfra reprezentuje specjalne uprawnienia, a jeśli zostanie pominięte, oznacza to, że dla pliku nie są ustawione żadne specjalne uprawnienia. W naszym przypadku 755 jest taki sam jak 0755 . Pierwsza cyfra może być kombinacją 4 dla setuid , 2 dla setgid i 1 dla Sticky Bit .

Uprawnienia do plików można zmienić za pomocą polecenia chmod a prawa własności za pomocą chown .

Zrozumienie umask

Domyślnie w systemach Linux domyślne uprawnienia do tworzenia wynoszą 666 dla plików, co daje uprawnienia do odczytu i zapisu dla użytkownika, grupy i innych oraz 777 dla katalogów, co oznacza uprawnienia do odczytu, zapisu i wykonywania dla użytkownika, grupy i inni Linux nie pozwala na tworzenie pliku z uprawnieniami do wykonywania.

Domyślne uprawnienia do tworzenia można modyfikować za pomocą narzędzia umask .

umask wpływa tylko na bieżące środowisko powłoki. W większości dystrybucji Linuksa domyślna wartość systemowa umask jest ustawiona w pam_umask.so lub /etc/profile .

Aby wyświetlić bieżącą wartość maski, po prostu wpisz umask bez żadnych argumentów:

umask

Dane wyjściowe będą zawierać

022

Wartość umask zawiera bity uprawnień, które NIE zostaną ustawione dla nowo tworzonych plików i katalogów.

Jak już wspomniano, domyślne uprawnienia do tworzenia plików to 666 a dla katalogów 777 . Aby obliczyć bity uprawnień nowych plików, odejmij wartość umask od wartości domyślnej.

Na przykład, aby obliczyć wpływ uname 022 na nowo utworzone pliki i katalogi, użyj:

  • Pliki: 666 - 022 = 644 . Właściciel może czytać i modyfikować pliki. Grupa i inni mogą odczytywać tylko pliki. Katalogi: 777 - 022 = 755 Właściciel może cd do katalogu i czytać, modyfikować, tworzyć lub usuwać pliki w katalogu. Grupa i inni mogą cd do katalogu i listy oraz odczytać pliki.

Można również wyświetlić wartość maski w notacji symbolicznej za pomocą opcji -S :

umask -S

u=rwx, g=rx, o=rx

W przeciwieństwie do notacji numerycznej, wartość notacji symbolicznej zawiera bity uprawnień, które zostaną ustawione w nowo utworzonych plikach i katalogach.

Ustawienie wartości maski

Maskę tworzenia pliku można ustawić za pomocą notacji ósemkowej lub symbolicznej. Aby wprowadzić zmiany na stałe, ustaw nową wartość umask w globalnym pliku konfiguracyjnym, takim jak /etc/profile , który wpłynie na wszystkich użytkowników lub w plikach konfiguracyjnych powłoki użytkownika, takich jak ~/.profile , ~/.bashrc lub ~/.zshrc które wpłynie tylko na użytkownika. Pliki użytkownika mają pierwszeństwo przed plikami globalnymi.

Przed wprowadzeniem zmian w wartości umask upewnij się, że nowa wartość nie stanowi potencjalnego zagrożenia bezpieczeństwa. Wartości mniej restrykcyjne niż 022 należy stosować z dużą ostrożnością. Na przykład umask 000 oznacza, że ​​każdy będzie miał uprawnienia do odczytu, zapisu i wykonywania dla wszystkich nowo utworzonych plików.

Powiedzmy, że chcemy ustawić bardziej restrykcyjne uprawnienia dla nowo tworzonych plików i katalogów, aby inni nie mogli cd się do katalogów i czytać plików. Potrzebne nam uprawnienia to 750 dla katalogów i 640 dla plików.

Aby obliczyć wartość umask po prostu odejmij wymagane uprawnienia od domyślnego:

Wartość umask: 777-750 = 027

Pożądana wartość umask reprezentowana w notacji numerycznej to 027 .

Aby trwale ustawić nową wartość w całym systemie, otwórz /etc/profile w edytorze tekstu:

sudo nano /etc/profile

i zmień lub dodaj następujący wiersz na początku pliku:

/ etc / profile

umask 027

Aby zmiany odniosły skutek, uruchom następujące polecenie source lub wyloguj się i zaloguj:

source /etc/profile

Aby zweryfikować nowe ustawienia, utworzymy jeden nowy plik i katalog za pomocą mkdir i touch :

mkdir newdir touch newfile

drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile

Innym sposobem ustawienia maski tworzenia pliku jest użycie zapisu symbolicznego. Na przykład umask u=rwx, g=rx, o= jest taki sam jak umask 027 .

Wniosek

W tym przewodniku wyjaśniliśmy uprawnienia systemu Linux i jak używać polecenia umask do ustawiania bitów uprawnień dla nowo tworzonych plików lub katalogów.

Aby uzyskać więcej informacji, wpisz man umask w swoim terminalu.

terminal umask