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.
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.
Chcesz zachować uprawnienia do plików podczas kopiowania plików w systemie Linux? Oto jak to zrobić za pomocą cp i rsync.
Czytaj dalej
- Linux
- Zarządzanie plikami
- Linux

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.
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ć