Załóżmy, że domyślna maska to 0666. umask
0022 spowoduje, że nowa maska 0644 (0666-0022 = 0644) oznacza, że grupa i inni mają uprawnienia do odczytu (bez zapisu lub wykonywania).
„Dodatkowa” cyfra (pierwsza liczba = 0) oznacza, że nie ma żadnych trybów specjalnych.
Jeśli tryb zaczyna się od cyfry, będzie interpretowany jako ósemkowy, w przeciwnym razie ma być symboliczny.
0 jest cyfrą, podobnie jak 1 (dla bitu lepkiego) lub 6 (dla SGID). Polecenie, które chmod
można wywołać innymi metodami, na przykład w chmod ug+rw mydir
przypadku dodania uprawnień do odczytu i zapisu do użytkownika i grupy. Zauważ, że tryb w tym przypadku (ug + rw) nie zaczyna się od cyfry, dlatego nie będzie interpretowany jako ósemkowy, ale raczej symboliczny.
Zobacz en.wikipedia.org/wiki/Chmod#Symbolic_examples dla symboli, a także www.lifeaftercoffee.com/2007/03/20/special-permission-modes-in-linux-and-unix/, aby dowiedzieć się więcej na temat trybów specjalnych.
Nie wiem, czy zdemaskowałbyś pierwszy bit umask
, ale technicznie możesz. To by wyjaśniało, dlaczego prawie zawsze postrzegasz to jako zero.
Kredyt dla pinkfloydx33
Pierwsza cyfra maski dotyczy specjalnych uprawnień, które nie pasują tak dokładnie do właściciela / grupy / innego modelu. Gdy dla uprawnienia do pliku podano cztery cyfry, pierwsza odnosi się do tych wartości specjalnych:
4000 = SUID
2000 = SGID
1000 = sticky bit
Bit SUID, skrót od set-user-ID, powoduje, że program wykonywalny działa z efektywnym identyfikatorem użytkownika (uid) właściciela - innymi słowy, bez względu na to, kto go wykonuje, program wykonuje się na prawach właściciela. Jest to powszechnie widoczne w programach, które robią rzeczy, które wymagają uprawnień roota, ale są przeznaczone do uruchamiania przez zwykłych użytkowników: passwd
jest jednym z takich przykładów.
Bit SGID, skrót od set-group-ID, jest bardzo podobny, ale działa z efektywnym id grupy (gid) właściciela.
Lepki kawałek jest nieco bardziej skomplikowany, jeśli chcesz uzyskać więcej informacji na ten temat, możesz przeczytać stronę podręcznika sticky
.
Te bity mogą być również używane z katalogami, ale ich znaczenie się zmienia.
Nie sądzę, że można ustawić umask
opcję domyślnego włączenia któregoś z tych dodatkowych bitów, ale prawdopodobnie i tak nigdy byś tego nie chciał.
Kredyt dla użytkownika470379
man 2 umask
(odpowiedniego wywołania systemowego) „mask
używane są tylko bity uprawnień do pliku ”. Wbash
, umask 1000 generuje błąd: „liczba ósemkowa poza zakresem”. Skąd więc dodatkowe 0? Myślę, że to tylko po to, aby pokazać liczbę ósemkową.