Jaka jest pierwsza cyfra ósemkowa chmod w czterocyfrowej wartości?

40

Czasami widzę chmodpolecenia, które używają czterech cyfr ósemkowych zamiast trzech - po co jest opcjonalna pierwsza cyfra? Na przykład chmod 777jest równoważne z chmod a+rwx; po co jest to samo polecenie chmod 2777?

prosseek
źródło
1
To dobre pytanie, więc starałem się je trochę uogólnić
Michał Mrożek
3
„Czwarta cyfra ósemkowa chmod” jest nieco myląca, cyfra, o której mowa, jest tak naprawdę pierwsza podczas czytania od lewej do prawej.
jsbillings

Odpowiedzi:

44

Pamiętaj, że chmod 777 filenamejest to odpowiednik chmod 0777 filenamew tym przykładzie.

Pierwsza cyfra ósemkowa ustawia setuid, setgid i lepkie bity ( więcej informacji na temat setuid / setgid znajduje się w tym artykule ). octal 2 oznacza ustawienie identyfikatora grupy w pliku. Odpowiednikiem byłoby więc zrobienie chmod a+rwx filenamea chmod g+s filename. Strona chmod informacyjna wyjaśnia to bardziej szczegółowo.

jsbillings
źródło
5
Prawie wszystkie implementacje chmod (1) mogą używać przecinków w argumentach trybu symbolicznego. Tak więc, twój odpowiednik 2777 może być wykonane w jednym poleceniem: chmod a+rwx,g+s filename. Lub, ściślej (pamiętając, aby wyczyścić setuid i lepkie kawałki jak gdyby tworzyły trybie numerycznym) chmod a=rwx,g+s filename.
Chris Johnsen