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?


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.