Jaka jest pierwsza cyfra w czterocyfrowej ósemkowej notacji uprawnień do pliku Unix?

40

3-cyfrowy:

644
ugo (user group other)

4 cyfra:

0644
?ugo (??? user group other)

Jaka jest pierwsza cyfra ósemkowa w czterocyfrowej notacji uprawnień do pliku uniksowego?

Steven T. Snyder
źródło

Odpowiedzi:

48

Od man chmod:

Tryb numeryczny składa się z jednej do czterech cyfr ósemkowych (0–7), uzyskanych przez dodanie bitów o wartościach 4, 2 i 1. Zakłada się, że wszelkie pominięte cyfry są zerami wiodącymi. Pierwsza cyfra wybiera ustawiony identyfikator użytkownika (4) i zestaw identyfikatora grupy (2) i atrybutów lepkich (1).

Czym są „ustaw identyfikator użytkownika”, „ustaw identyfikator grupy” i „przyklejony”, pytasz?

setuid / setgid :

setuid i setgid (odpowiednio: „ustaw identyfikator użytkownika po wykonaniu” i „ustaw identyfikator grupy po wykonaniu”) są flagami praw dostępu w systemie Unix, które pozwalają użytkownikom uruchamiać plik wykonywalny z uprawnieniami właściciela lub grupy pliku wykonywalnego. Są często używane, aby umożliwić użytkownikom systemu komputerowego uruchamianie programów z tymczasowo podwyższonymi uprawnieniami w celu wykonania określonego zadania. Choć podane uprawnienia identyfikatora użytkownika lub identyfikatora grupy nie zawsze są podwyższone, przynajmniej są określone.

Ponadto po zastosowaniu do katalogu setuid / setgid powoduje, że nowe pliki utworzone w tym katalogu dziedziczą odpowiednio identyfikator UID lub GID katalogu nadrzędnego. To zachowanie różni się w zależności od smaku Uniksa. Na przykład linux honoruje setgid, ale ignoruje setuid w katalogach.

I lepki :

Najpopularniejszym zastosowaniem lepkiego bitu jest dzisiaj katalogi. Po ustawieniu bitu lepkiego tylko właściciel elementu, właściciel katalogu lub administrator może zmieniać nazwy lub usuwać pliki. Bez zestawu lepkich bitów każdy użytkownik z uprawnieniami do zapisu i wykonywania katalogu może zmienić nazwę lub usunąć zawarte pliki, niezależnie od właściciela. Zazwyczaj jest to ustawione w katalogu / tmp, aby uniemożliwić zwykłym użytkownikom usuwanie lub przenoszenie plików innych użytkowników.

Złota rączka 5
źródło
12

Setgid ma kolejną bardzo ważną funkcję, na której polegam codziennie, ale której nie ma w wyciągu Handyman5 (cytat pochodzi z tej samej strony, do której prowadzi link powyżej):

Flagi setuid i setgid, gdy są ustawione w katalogu, mają zupełnie inne znaczenie.

Ustawienie uprawnienia setgid dla katalogu (chmod g + s) powoduje, że nowe pliki i podkatalogi utworzone w nim dziedziczą jego identyfikator grupy, a nie identyfikator grupy podstawowej użytkownika, który utworzył plik (identyfikator właściciela nigdy się nie zmienia, tylko Identyfikator grupy). Nowo utworzone podkatalogi dziedziczą bit setgid.

Dzięki temu umożliwia udostępnianie obszaru roboczego dla grupy bez niedogodności polegającej na wymaganiu od członków grupy jawnej zmiany bieżącej grupy przed utworzeniem nowych plików lub katalogów. Należy pamiętać, że ustawienie uprawnień setgid dla katalogu wpływa tylko na identyfikator grupy nowych plików i podkatalogów utworzonych po ustawieniu bitu setgid i nie jest stosowane do istniejących encji. Ustawienie bitu setgid w istniejących podkatalogach musi być wykonane ręcznie za pomocą polecenia takiego jak:

[root@foo]# find /path/to/directory -type d -exec chmod g+s {} \;

chmod g+soznaczałoby dodanie 2 z przodu wartości ósemkowej, tworząc katalog, który ma 775 uprawnień ( drwxrwxr-x) do 2775 ( drwxrwsr-x).

Jay Allen
źródło
2
FYI: MacOS X zachowuje się tak, jakby bit SGID był zawsze włączony w katalogu.
Jonathan Leffler,
4

Oprócz innych odpowiedzi wiodące 0 to konwencja używana do oznaczania liczby ósemkowej. Nie jest to tutaj wymagane, ponieważ uprawnienia do plików są zawsze wyrażane w postaci ósemkowej, ale może to być kolejny powód, dla którego jest obecny.

jlliagre
źródło
2

Oto łatwy w użyciu kalkulator uprawnień Limux / Unix, który pomoże ci ustalić uprawnienia do pliku lub katalogu.

vegasbrianc
źródło
Samo zamieszczanie linków jest niezadowolone. Powinieneś opublikować odpowiednią treść, a następnie zacytować swoje źródło.
MDMarra,
Zauważyłem, że przyszłe posty będą poprawnie sformatowane
vegasbrianc