SUID
Lepki nieco zastosowane do programów wykonywalnych słabnącym systemu, aby mieć obraz programu w pamięci po zakończeniu działania programu.
Ale nie wiem, co jest przechowywane w pamięci. I jak mogę je zobaczyć w tym przypadku.?
SUID
Lepki nieco zastosowane do programów wykonywalnych słabnącym systemu, aby mieć obraz programu w pamięci po zakończeniu działania programu.
Ale nie wiem, co jest przechowywane w pamięci. I jak mogę je zobaczyć w tym przypadku.?
Odpowiedzi:
Jest to prawdopodobnie jedna z moich najbardziej irytujących rzeczy, które ludzie cały czas psują. Bit SUID / GUID i bit lepki to 2 zupełnie różne rzeczy.
Jeśli to zrobisz man chmod
, możesz przeczytać o SUID i lepkich bitach. Strona podręcznika jest również dostępna tutaj .
fragment
Litery rwxXst wybierają bity trybu pliku dla dotkniętych użytkowników: odczyt (r), zapis (w), wykonanie (lub wyszukiwanie katalogów) (x), wykonanie / wyszukiwanie tylko, jeśli plik jest katalogiem lub ma już uprawnienia do wykonywania dla niektórych użytkownik (X), ustaw ID użytkownika lub grupy na wykonanie (s) , flagę ograniczonego usuwania lub lepki bit (t) .
Powyższa strona podręcznika próbuje powiedzieć, że pozycja, którą bit x zajmuje w rwxrwxrwx dla ósemki użytkownika (1. grupa rwx), a ósemka grupy (2. grupa rwx) może przyjąć dodatkowy stan, w którym x staje się s. Kiedy to nastąpi, ten plik po uruchomieniu (jeśli jest to program, a nie tylko skrypt powłoki) będzie działał z uprawnieniami właściciela lub grupy pliku.
Więc jeśli plik jest własnością root, a bit SUID jest włączony, program będzie działał jako root. Nawet jeśli wykonujesz go jako zwykły użytkownik. To samo dotyczy bitu GUID.
fragment
SETUID I SETGID BITS
chmod usuwa bit set-group-ID zwykłego pliku, jeśli identyfikator grupy pliku nie odpowiada efektywnemu identyfikatorowi grupy użytkownika lub jednemu z dodatkowych identyfikatorów grupy użytkownika, chyba że użytkownik ma odpowiednie uprawnienia. Dodatkowe ograniczenia mogą powodować, że bity SET-user-ID i set-group-ID MODE lub RFILE będą ignorowane. To zachowanie zależy od zasad i funkcjonalności wywołania systemowego chmod. W razie wątpliwości sprawdź podstawowe zachowanie systemu.
chmod zachowuje bity set-user-ID i set-group-ID katalogu, chyba że wyraźnie określono inaczej. Możesz ustawić lub wyczyścić bity za pomocą trybów symbolicznych, takich jak u + s i gs, i możesz ustawić (ale nie wyczyścić) bity za pomocą trybu numerycznego.
no suid / guid - ustawione są tylko bity rwxr-xr-x .
$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid i bit wykonywalny użytkownika włączony (małe litery s) - ustawione są bity rwsr-xrx .
$ chmod u+s b.pl
$ ls -lt b.pl
-rwsr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid włączony i wyłączony bit wykonywalny (wielkie litery S) - ustawione są bity rwSr-xr-x .
$ chmod u-x b.pl
$ ls -lt b.pl
-rwSr-xr-x 1 root root 179 Jan 9 01:01 b.pl
włączony bit wykonywalny guid & group (małe litery s) - ustawione są bity rwxr-sr-x .
$ chmod g+s b.pl
$ ls -lt b.pl
-rwxr-sr-x 1 root root 179 Jan 9 01:01 b.pl
GUID włączony i wyłączony bit wykonywalny (wielkie litery S) - ustawione są bity rwxr-Sr-x .
$ chmod g-x b.pl
$ ls -lt b.pl
-rwxr-Sr-x 1 root root 179 Jan 9 01:01 b.pl
Z drugiej strony lepki bit jest oznaczony jako t
, na przykład w /tmp
katalogu:
$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp
Ten bit powinien być zawsze nazywany „bitem ograniczonego usuwania”, biorąc pod uwagę, że tak właśnie się kojarzy. Gdy bit tego trybu jest włączony, tworzy katalog, w którym użytkownicy mogą usuwać tylko pliki i katalogi w nim, których są właścicielami.
fragment
OGRANICZONA USUWANIE FLAGI LUB KLEJOWEGO BITU
Flaga ograniczonego usuwania lub lepki bit to pojedynczy bit, którego interpretacja zależy od typu pliku. W przypadku katalogów
uniemożliwia nieuprzywilejowanym użytkownikom usuwanie lub zmianę nazwy pliku w katalogu, chyba że jest on właścicielem pliku lub katalogu; nazywa się to flagą ograniczonego usuwania katalogu i jest powszechnie spotykane w światowych katalogach takich jak / tmp. W przypadku zwykłych plików w niektórych starszych systemach bit zapisuje obraz tekstowy programu na urządzeniu wymiany, aby ładował się szybciej po uruchomieniu; nazywa się to lepkim bitem.
ls
. Oczywiście tylko administrator może ustawić lepki bit na pliku. Stało się to mniej ważne po wprowadzeniu pamięci wirtualnej i bibliotek współdzielonych, a zwłaszcza, gdy pager stał się mądrzejszy i może dynamicznie decydować, które strony zachować.
ed
klej.
„Bit lepki zastosowany do programów wykonywalnych oznaczających system, aby zachować obraz programu w pamięci po zakończeniu działania programu.”
Myślę, że to dość przestarzałe informacje, dziś większość współczesnych Uniksów to ignoruje. W Linuksie lepki bit dotyczy tylko katalogów. Zobacz tutaj i dość pouczający artykuł z Wikipedii .
W każdym razie, w tym starym zachowaniu obraz (tylko „kod”, nie dane) był przechowywany tylko w pamięci wirtualnej - normalnie zamieniany, a nie w prawdziwej pamięci, aby następnym razem uruchomić go szybciej.
Co to są lepkie bity?
Lepki bit to bit uprawnień ustawiony w katalogu, który pozwala tylko właścicielowi pliku w tym katalogu lub użytkownikowi root na usunięcie lub zmianę nazwy pliku. Żaden inny użytkownik nie ma wymaganych uprawnień do usunięcia pliku utworzonego przez innego użytkownika.
Jest to środek bezpieczeństwa, aby uniknąć usunięcia krytycznych folderów i ich zawartości (podkatalogów i plików), chociaż inni użytkownicy mają pełne uprawnienia.