Przejdź do głównej zawartości

Linux RHCSA cz.33 - Użytkownicy - Uprawnienia plików i katalogów - Współpraca grup, sticky bit

Współpraca pomiędzy grupami jest esencją każdego biznesu oraz ważnym elementem dla każdego administratora pracującego z użytkownikami. Wiedza w jaki sposób konfigurować pracę współpracę grupową jest podstawową umiejętnością jaką powinien posiadać administrator. Poznamy zagadnienia dotyczące uprawnień do plików i katalogów co umożliwi współprace pomiędzy grupami. 
  • setuid     - Ta flaga używana jest do zezwalania na dostęp dla wielu użytkowników
  • setgid     - Ta flaga umożliwia dostęp dla wielu grup 
  • sticky bit - Ta flaga zapobiega przypadkowemu usunięciu pliku użytkownikom lub grupie
Dla współpracy pomiędzy grupami używa się dwóch kluczowych poleceń: 
  • chmod   - Zmiana uprawnień dla plików i katalogów
  • chown   - Zmiana właściciela dla plików lub katalogów
Pierwszą cechą jest "setuid", który jest ustawiony na plikach z poziomu właściciela za pomocą polecenia "chmod". Ustawienie to uprawnia właściciela do wykonywania pliku. Dla przykładu jeżeli posiadasz skrypt generujący raport dla firmy jedyną osobą jaka może go uruchomić jest User01 ale można zmienić ustawienie "setuid" dla innych użytkowników tak by również mogli wykonywać dany skrypt. 

Utwórzmy plik raportu : 

# touch reporting_script

Następnie ustawmy setuid: 

# chmod 4755 reporting_script

To samo możemy osiągnąć stosując polecenie : 

# chmod u+s reporting_script

Teraz zobaczmy jakie są uprawnienia dla pliku : 

# ll
total 12
-rwsr-xr-x 1 user01 user01 0 Jun 8 17:20 reporting_script.sh

Widać że została ustawiona flaga "x" dla wykonywania pliku przez pozostałych użytkowników, którzy teraz mogą również wykonywać dany skrypt. 

W jaki sposób znaleźć w systemie pliki które mają ustawienie uprawnień w taki sposób, że jeden użytkownik umożliwia korzystanie z pliku innemu?

# find / -perm 4000

Następnie przejdźmy do "setgid", który jest bardzo zbliżony do "setuid" ale znaczenie ma dla grup. Zgodnie z tym ustawieniem wszyscy użytkownicy w danej grupie otrzymują nadany poziom uprawnień. Stwórzmy katalog na którym nadamy odpowiednie uprawnienia. 

Krok 1 - Jak o root tworzymy katalog

# mkdir /tmp/Sales

Krok 2 - Tworzymy grupę i dodajemy do niej użytkowników

# groupadd Sales
# usermod -G Sales user02
# usermod -G Sales user03

Krok 3 - Nadajemy uprawnienia do współpracy (utworzone w katalogu pliki będą domyślnie należały do grupy Sales) 

# chown nobody:Sales Sales/
# chmod 2770 /tmp/Sales albo chmod g+s /tmp/Sales 

Krok 4 - Weryfikujemy 

# ll
total 16
drwxrws—- 2 nobody Sales 4096 Jun 8 18:11 Sales

W takim układzie wszyscy użytkownicy grupy Sales mogą zapisywać i odczytywać zawartość katalogu. Nikt inny poza użytkownikami grupy Sales nie może zrobić niczego w tym katalogu. Każdy plik utworzony w tym katalogu należy do użytkownika który go utworzył ale wszyscy z grupy mogą go odczytywać i zapisywać. 

Na koniec zobaczmy "sticky bit" oznaczany symbolem "t" na końcu listy symboli flag i zabezpiecza przed przypadkowym usunięciem pliku lub katalogu. 

Krok 1 - Ustawmy "sticky bit" na katalogu /tmp

# chmod 1777 /tmp

Krok 2 - Weryfikacja

# ll
total 16
drwxrwxrwt 3 root root 4096 Jun 8 18:11 tmp

Teraz żaden z użytkowników nie usunie pliku tylko ty możesz to zrobić. Ta opcja pozwala uchronić przed stratą pliku jeżeli pracujemy w udostępnionej dla większej liczby użytkowników lokalizacji. 

Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości