Sticky bit – ochrona przed usuwaniem cudzych plików

W linux, przypadku katalogów współdzielonych, samo nadanie prawa zapisu danemu użytkownikowi nie zawsze jest wystarczające i może prowadzić do problemów. Jeśli kilku użytkowników ma prawo zapisu do tego samego katalogu, mogą oni nie tylko dodawać własne pliki, ale również usuwać lub zmieniać wpisy należące do innych użytkowników. W praktyce oznacza to, że bez dodatkowego zabezpieczenia można przypadkowo albo celowo skasować cudzy plik, mimo że nie jest się jego właścicielem.

Właśnie w takiej sytuacji stosuje się sticky bit. Jest to specjalny atrybut katalogu, który ogranicza możliwość usuwania i zmiany nazw plików znajdujących się w jego wnętrzu. Gdy sticky bit jest ustawiony, użytkownik nie może po prostu usunąć dowolnego pliku tylko dlatego, że ma prawo zapisu do katalogu.

Przykładowy zapis uprawnień wygląda tak:

drwxrwxrwt

Litera t na końcu oznacza właśnie ustawiony sticky bit. Taki katalog nadal może być współdzielony i zapisywalny dla wielu użytkowników, ale usunąć plik lub zmienić jego nazwę może tylko:

  • właściciel pliku
  • właściciel katalogu
  • root

Dzięki temu użytkownicy mogą wspólnie korzystać z jednego katalogu, nie ryzykując, że ktoś usunie ich dane tylko dlatego, że ma dostęp do zapisu w tym miejscu.

Najbardziej znanym przykładem katalogu z ustawionym sticky bitem jest /tmp. To katalog, do którego wiele programów i użytkowników zapisuje pliki tymczasowe. Gdyby sticky bit nie był tam ustawiony, każdy użytkownik mógłby usuwać pliki tymczasowe utworzone przez innych, co mogłoby prowadzić do błędów i problemów z działaniem systemu lub aplikacji.

Sticky bit można ustawić poleceniem:

chmod +t katalog

albo w zapisie numerycznym:

chmod 1777 katalog

Wartość 1 na początku oznacza właśnie sticky bit, natomiast 777 nadaje wszystkim użytkownikom prawo do odczytu, zapisu i wejścia do katalogu. Połączenie tych ustawień sprawia, że katalog jest dostępny dla wszystkich, ale jednocześnie chroni pliki przed usuwaniem przez osoby nieuprawnione.

Sticky bit mozna usunąc za pomocą polecenia:

chmod -t katalog
chmod 0777 katalog

Spowoduje to wyłączenie dodatkowej ochrony, a użytkownicy mający prawo zapisu do katalogu będą mogli ponownie usuwać lub zmieniać nazwy także cudzych plików.

Author: Joanna

Piszę kody, które (zazwyczaj) działają. Tresuję Wordpressa, kodzę z Reactem, zgłębiam świat DevOps i klikam w konsoli Linuxa. Hobbystycznie optymalizuję kod, bo lenistwo to najczystsza forma produktywności. Staram się nie zwariować między bugiem a deadlinem.

Może Cię zainteresować

Powiązane posty