Unix / Linux - uprawnienia do plików / tryby dostępu
W tym rozdziale omówimy szczegółowo prawa dostępu do plików i tryby dostępu w systemie Unix. Własność plików jest ważnym składnikiem systemu Unix, który zapewnia bezpieczną metodę przechowywania plików. Każdy plik w systemie Unix ma następujące atrybuty -
Owner permissions - Uprawnienia właściciela określają, jakie czynności właściciel pliku może wykonać na pliku.
Group permissions - Uprawnienia grupy określają, jakie czynności użytkownik będący członkiem grupy, do której należy plik, może wykonać na pliku.
Other (world) permissions - Uprawnienia innych osób wskazują, jakie działania mogą wykonać wszyscy inni użytkownicy na pliku.
Wskaźniki uprawnień
Podczas używania ls -l polecenie, wyświetla różne informacje związane z uprawnieniami do pliku w następujący sposób -
$ls -l /home/amrood
-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile
drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
Tutaj pierwsza kolumna reprezentuje różne tryby dostępu, tj. Uprawnienia związane z plikiem lub katalogiem.
Uprawnienia są podzielone na grupy po trzy, a każda pozycja w grupie oznacza określone uprawnienie, w następującej kolejności: odczyt (r), zapis (w), wykonanie (x) -
Pierwsze trzy znaki (2-4) reprezentują uprawnienia właściciela pliku. Na przykład,-rwxr-xr-- oznacza, że właściciel ma uprawnienia do odczytu (r), zapisu (w) i wykonywania (x).
Druga grupa trzech znaków (5-7) składa się z uprawnień dla grupy, do której należy plik. Na przykład,-rwxr-xr-- oznacza, że grupa ma uprawnienia do odczytu (r) i wykonywania (x), ale nie ma uprawnień do zapisu.
Ostatnia grupa trzech znaków (8-10) reprezentuje uprawnienia dla wszystkich innych. Na przykład,-rwxr-xr-- oznacza, że istnieje read (r) tylko pozwolenie.
Tryby dostępu do plików
Uprawnienia do pliku to pierwsza linia obrony bezpieczeństwa systemu Unix. Podstawowymi blokami konstrukcyjnymi uprawnień w systemie Unix są plikiread, write, i execute uprawnienia, które zostały opisane poniżej -
Czytać
Umożliwia odczyt, czyli przeglądanie zawartości pliku.
pisać
Daje możliwość modyfikowania lub usuwania zawartości pliku.
Wykonać
Użytkownik z uprawnieniami do wykonywania może uruchomić plik jako program.
Tryby dostępu do katalogu
Tryby dostępu do katalogu są wymienione i zorganizowane w taki sam sposób, jak w przypadku każdego innego pliku. Jest kilka różnic, o których należy wspomnieć -
Czytać
Dostęp do katalogu oznacza, że użytkownik może czytać zawartość. Użytkownik może spojrzeć na plikfilenames wewnątrz katalogu.
pisać
Dostęp oznacza, że użytkownik może dodawać lub usuwać pliki z katalogu.
Wykonać
Wykonywanie katalogu nie ma sensu, więc potraktuj to jako uprawnienie do przeglądania.
Użytkownik musi mieć execute dostęp do bin katalogu, aby wykonać plik ls albo cd Komenda.
Zmiana uprawnień
Aby zmienić uprawnienia do pliku lub katalogu, użyj rozszerzenia chmod(Zmień tryb) polecenie. Istnieją dwa sposoby użycia chmod - tryb symboliczny i tryb absolutny.
Używanie chmod w trybie symbolicznym
Najłatwiejszym sposobem modyfikowania uprawnień do plików lub katalogów przez początkującego jest użycie trybu symbolicznego. Dzięki uprawnieniom symbolicznym możesz dodawać, usuwać lub określać żądany zestaw uprawnień za pomocą operatorów w poniższej tabeli.
Sr.No. | Operator i opis chmury Chmod |
---|---|
1 | + Dodaje wyznaczone uprawnienia do pliku lub katalogu. |
2 | - Usuwa wyznaczone uprawnienia z pliku lub katalogu. |
3 | = Ustawia wyznaczone uprawnienia. |
Oto przykład użycia testfile. Bieganiels -1 w pliku testowym pokazuje, że uprawnienia pliku są następujące -
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
Następnie każdy przykład chmod polecenie z poprzedniej tabeli jest uruchamiane na pliku testowym, po którym następuje ls –l, więc możesz zobaczyć zmiany uprawnień -
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod g = rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
Oto, jak możesz połączyć te polecenia w jednym wierszu -
$chmod o+wx,u-x,g = rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
Używanie chmod z absolutnymi uprawnieniami
Drugim sposobem modyfikacji uprawnień za pomocą polecenia chmod jest użycie liczby do określenia każdego zestawu uprawnień do pliku.
Każdemu uprawnieniu przypisywana jest wartość, jak pokazano w poniższej tabeli, a suma każdego zestawu uprawnień zawiera liczbę dla tego zestawu.
Numer | Ośmiokrotna reprezentacja uprawnień | Nr ref |
---|---|---|
0 | Brak pozwolenia | --- |
1 | Wykonaj pozwolenie | --x |
2 | Napisz pozwolenie | -w- |
3 | Uprawnienia do wykonywania i zapisu: 1 (wykonanie) + 2 (zapis) = 3 | -wx |
4 | Czytaj pozwolenie | r-- |
5 | Uprawnienia do odczytu i wykonywania: 4 (odczyt) + 1 (wykonanie) = 5 | rx |
6 | Prawo do odczytu i zapisu: 4 (odczyt) + 2 (zapis) = 6 | rw- |
7 | Wszystkie uprawnienia: 4 (odczyt) + 2 (zapis) + 1 (wykonanie) = 7 | rwx |
Oto przykład wykorzystujący plik testowy. Bieganiels -1 w pliku testowym pokazuje, że uprawnienia pliku są następujące -
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
Następnie każdy przykład chmod polecenie z poprzedniej tabeli jest uruchamiane na pliku testowym, po którym następuje ls –l, więc możesz zobaczyć zmiany uprawnień -
$ chmod 755 testfile
$ls -l testfile
-rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 743 testfile
$ls -l testfile
-rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 043 testfile
$ls -l testfile
----r---wx 1 amrood users 1024 Nov 2 00:10 testfile
Zmiana właścicieli i grup
Tworząc konto w systemie Unix, przypisuje plik owner ID i a group IDdla każdego użytkownika. Wszystkie wyżej wymienione uprawnienia są również przypisywane na podstawie właściciela i grup.
Dostępne są dwa polecenia do zmiany właściciela i grupy plików -
chown - The chown komenda oznacza "change owner" i służy do zmiany właściciela pliku.
chgrp - The chgrp komenda oznacza "change group" i służy do zmiany grupy pliku.
Zmiana właściciela
Plik chownpolecenie zmienia własność pliku. Podstawowa składnia jest następująca -
$ chown user filelist
Wartością użytkownika może być name of a user w systemie lub user id (uid) użytkownika w systemie.
Poniższy przykład pomoże ci zrozumieć koncepcję -
$ chown amrood testfile
$
Zmienia właściciela danego pliku na użytkownika amrood.
NOTE - Superużytkownik, root, ma nieograniczoną możliwość zmiany własności dowolnego pliku, ale zwykli użytkownicy mogą zmieniać własność tylko tych plików, które są ich właścicielami.
Zmiana prawa własności do grupy
Plik chgrppolecenie zmienia prawa własności pliku do grupy. Podstawowa składnia jest następująca -
$ chgrp group filelist
Wartością group może być name of a group w systemie lub the group ID (GID) grupy w systemie.
Poniższy przykład pomoże ci zrozumieć koncepcję -
$ chgrp special testfile
$
Zmienia grupę podanego pliku na special Grupa.
Uprawnienia do plików SUID i SGID
Często, gdy polecenie jest wykonywane, będzie musiało zostać wykonane ze specjalnymi uprawnieniami, aby wykonać swoje zadanie.
Na przykład, gdy zmienisz hasło za pomocą passwd polecenie, twoje nowe hasło zostanie zapisane w pliku /etc/shadow.
Jako zwykły użytkownik nie masz read lub writedostęp do tego pliku ze względów bezpieczeństwa, ale kiedy zmieniasz hasło, musisz mieć uprawnienia do zapisu w tym pliku. Oznacza to, żepasswd program musi nadać Ci dodatkowe uprawnienia, abyś mógł zapisywać do pliku /etc/shadow.
Dodatkowe uprawnienia są nadawane programom za pośrednictwem mechanizmu znanego jako Set User ID (SUID) i Set Group ID (SGID) bity.
Gdy uruchamiasz program, który ma włączony bit SUID, dziedziczysz uprawnienia właściciela tego programu. Programy, które nie mają ustawionego bitu SUID, są uruchamiane z uprawnieniami użytkownika, który uruchomił program.
Tak jest również w przypadku SGID. Zwykle programy są uruchamiane z uprawnieniami Twojej grupy, ale zamiast tego Twoja grupa zostanie zmieniona tylko dla tego programu na właściciela grupy programu.
Bity SUID i SGID pojawią się jako litera "s"jeśli pozwolenie jest dostępne. SUID"s" bit będzie znajdować się w bitach uprawnień, w których właściciele execute zezwolenie zwykle przebywa.
Na przykład polecenie -
$ ls -l /usr/bin/passwd
-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*
$
Pokazuje, że bit SUID jest ustawiony i że właścicielem polecenia jest root. Wielka literaS w pozycji wykonywania zamiast małych liter s wskazuje, że bit wykonania nie jest ustawiony.
Jeśli bit lepki jest włączony w katalogu, pliki można usunąć tylko wtedy, gdy jesteś jednym z następujących użytkowników -
- Właściciel katalogu przyklejonego
- Właściciel usuwanego pliku
- Superużytkownik, root
Aby ustawić bity SUID i SGID dla dowolnego katalogu, wypróbuj następujące polecenie -
$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname
$