Jako początkujący użytkownik Linuksa poznasz uprawnienia i prawa własności związane z plikiem i katalogami. Systemy operacyjne podobne do Linux/Unix umożliwiają ustawienie kombinacji dziewięciobitowych uprawnień, aby uniemożliwić innym użytkownikom niepotrzebny dostęp do plików/katalogów. Podobne do nich są specjalne uprawnienia dla plików wykonywalnych znane jako set UID, set GID i sticky bits.

Zrozumienie specjalnych uprawnień może być nieco przytłaczające dla początkujących administratorów Linuksa. Tutaj dowiesz się trochę o zwykłych uprawnieniach do plików i wyjaśnisz, czym różnią się one od uprawnień specjalnych. Demonstrujemy również funkcjonalność SetID, GetID i sticky bits wraz z przykładami dla pełnego zrozumienia.

Zwykłe uprawnienia do plików w systemie Linux

Linux używa polecenie chmod aby przypisać/zmienić odczyt (r=4), pisać (w=2) i wykonaj (x=1) uprawnienia do plików i folderów. To znaczy, że dziewięć bitów wspomnianych powyżej stosuje się do trzech głównych kategorii grup uprawnień. Pierwsze trzy są przeznaczone dla użytkownika będącego właścicielem pliku, drugie dla grupy przypisanej do pliku/katalogu, a ostatnie trzy reprezentują wszystkich pozostałych użytkowników.

instagram viewer

Na przykład w zwykłym pliku wszystkie rodzaje uprawnień dla wszystkich kategorii użytkowników będą wyświetlane jako -rwxrwxrwx. Natomiast w miejsce liter oznacza brak tego zezwolenia. Ale już chmod polecenie używa cyfr i liter do zmiany uprawnień w następujący sposób:

plik sudo chmod 755 #dla rwxr-xr-x 
plik sudo chmod 644 #dla rw-r--r-- 
sudo chmod plik a-w #dla r-xr-xr-x 
sudo chmod plik a+x #dla --x--x--x

Specjalne uprawnienia do plików w systemie Linux

ten setuid bit reprezentuje uprawnienia do pliku wykonywalnego, które mogą być uruchamiane przez innych użytkowników z autoryzacją właściciela. Na przykład, gdy użytkownik maks uruchamia polecenie vi jako użytkownik Jan, będziesz miał uprawnienia do odczytu/zapisu Jan.

Aby zidentyfikować pliki z setuid, użyj ls polecenie i poszukaj s bit w miejscu bitu wykonywalnego x, następująco.

Ustaw bit UID

ten setuid bit reprezentuje uprawnienia do pliku wykonywalnego, które mogą być uruchamiane przez innych użytkowników z autoryzacją właściciela. Na przykład, gdy użytkownik maks uruchamia polecenie vi jako źródło, będzie miał uprawnienia do odczytu/zapisu źródło. Aby zidentyfikować pliki z setuid, użyj ls polecenie i poszukaj s bit zamiast bitu wykonania x, następująco:

ls -la /etc/passwd 
-rwsr-xr-x 1 root root 88464 14 grudnia 12:46 passwd

Oto kilka innych przykładów:

ls -la /bin/gpasswd
-rwsr-xr-x 1 root root 88464 Lip 14 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 korzeń główny 67816 Lipiec 21 2020 su
ls -la /newgrp
-rwsr-xr-x 1 root root 44784 Lip 14 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 root root 166056 Jan 19 2021 sudo

Aby ustawić bit setuid dla plików wykonywalnych, użyj polecenia chmod w następujący sposób:

chmod u+s /etc/passwd

Aby odebrać uprawnienia do wykonywania plików użytkownikom lub właścicielom innym niż root:

chmod u-s /etc/passwd

Ustaw bit GID

Jak wspomniano, bit set uid kontroluje dostęp do plików dla innych użytkowników, podczas gdy bit setgid (GID) tworzy katalogi współpracy. Oznacza to, że każdy plik utworzony w tym katalogu jest dostępny dla grupy katalogu. W związku z tym umożliwia wszystkim członkom grupy uruchamianie plików wykonywalnych bez uprawnień właściciela i chroni je przed innymi użytkownikami.

Wykonaj poniższe czynności, aby utworzyć katalog grupowy w systemie Linux:

Utwórz grupę za pomocą groupadd polecenie z identyfikatorem grupy 415 do współpracy:

groupadd -g 415 administratorów

Użyj polecenia usermod, aby dodać Jando grupy w celu uzyskania dostępu/wykonania pliku.

usermod -aG administratorzy john

Użyj mkdir polecenie do utworzenia katalogu:

mkdir /tmp/collaborative_dir

Użyj chgrp polecenie, aby przypisać katalog do administratorzy Grupa:

Administratorzy chgrp /tmp/collaborative_dir

Użyj chmod polecenie, aby zmienić uprawnienia do katalogu na 2775. 2 bit włącza zestaw gid, 7 przypisuje pełne rwx użytkownikowi i grupie, a 5 (r-w) innym.

chmod 2775 /tmp/collaborative_dir

Na koniec zmień swoje konto użytkownika na Jan oraz utwórz plik w katalogu współpracy, aby sprawdzić uprawnienia do plików.

su - john
dotknij /tmp/collaborative_dir/file.txt

Polecenie su może spowodować błąd uwierzytelniania. W takim przypadku wpisz sudo su polecenie przełączenia na root i ponowne uruchomienie su - john zmienić konto użytkownika

Teraz wypisz uprawnienia do sprawdzenia zestawu bitów GID dla katalogu i nowo utworzonego pliku.

ls -ld /tmp/collaborative_dir /tmp/collaborative_dir/plik.txt 

W typowym scenariuszu plik utworzony przez john będzie miał przypisany do niego grupowy jan. Ponieważ tworzysz plik w katalogu z ustawionym bitem GID, przypisuje on uprawnienia do administratorzy grupy, tak aby każdy, kto należy do grupy, jak użytkownik Chris, będzie miał do niego dostęp.Związane z: Jak tworzyć nowe pliki w systemie Linux za pomocą dotyku

Lepkie bity

W przeciwieństwie do bitów SID i GID, bity lepkie różnią się funkcjonalnością, ponieważ chronią pliki i katalogi przed zmianą nazwy i usunięciem przez innych użytkowników. Zwykłe uprawnienia do plików umożliwiają każdemu użytkownikowi z prawem zapisu usunięcie lub zmianę nazwy pliku. Podczas gdy z ustawionym bitem Sticky nie jest to możliwe, chyba że jesteś użytkownikiem root lub właścicielem pliku.

Idealnym scenariuszem użycia bitów lepkich jest katalog dostępny dla wszystkich użytkowników do tworzenia plików. Na przykład użyj ls -ld polecenie, aby sprawdzić \tmp uprawnienia katalogowe w następujący sposób:

Możesz zauważyć, że lepki bit T zastępuje bit wykonania x. Postępuj zgodnie z podanym zestawem instrukcji, aby utworzyć katalog z ograniczonym usuwaniem:

Teraz utwórz kolejny katalog w /tmp teczka:

mkdir /tmp/nowy_katalog

Zmień uprawnienia do pliku na 1777 ustawić bit lepki (T) i pełny dostęp do katalogu:

chmod 1777 /tmp/nowy_katalog

Teraz skopiuj dowolny plik z /etc folder do /tmp/new_dir i zmień jego uprawnienia na 666:

cp /etc/ /tmp/nowy_katalog
chmod 666 /tmp/nowy_katalog/usługi

Wymień katalog i całą jego zawartość, aby wyświetlić uprawnienia:

ls -ld /tmp/nowy_katalog /tmp/nowy_katalog/usługi

Możesz zauważyć przyklejony bit zamiast bitu wykonania, co oznacza, że ​​tylko root lub użytkownik john może usunąć plik, ponieważ plik znajduje się w katalogu przyklejonych bitów.

Zrozumienie specjalnych uprawnień do plików w systemie Linux

W artykule pokazano, jak ustawić te bity, aby usprawnić współpracę nad udostępnionymi plikami i katalogami oraz chronić je przed nieautoryzowanym dostępem, wykonaniem i usunięciem. Nawet jeśli nie tworzysz plików/katalogów z tymi bitami, zrozumienie specjalnych uprawnień do plików jest pomocne w wielu sytuacjach, zwłaszcza podczas rozwiązywania problemów lub jako administrator systemu. Natomiast nierozsądne użycie tych bitów może powodować różne luki w zabezpieczeniach.

Jak zachować uprawnienia do plików podczas kopiowania plików w systemie Linux?

Chcesz zachować uprawnienia do plików podczas kopiowania plików w systemie Linux? Oto jak to zrobić za pomocą cp i rsync.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Linux
  • Zarządzanie plikami
  • Linux
O autorze
Rumaisa Niazi (3 opublikowane artykuły)

Rumaisa jest niezależnym pisarzem w MUO. Przebyła długą drogę od matematyka do entuzjasty bezpieczeństwa informacji i pracuje jako analityk SOC. Jej zainteresowania obejmują czytanie i pisanie o nowych technologiach, dystrybucjach Linuksa i wszystkim, co dotyczy bezpieczeństwa informacji.

Więcej od Rumaisy Niazi

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować