Różnica między trzema a czterema cyfrowymi uprawnieniami do plików?

11

Ostatnio zastanawiałem się, jaka jest różnica między trzema a czterema cyfrowymi uprawnieniami do plików numerycznych. Otrzymuję uprawnienia numeryczne, uruchamiając. stat --format "%a" $file_nameJaka jest różnica między 0644 a 644?

NerdOfCode
źródło
Zastanawiałem się nad różnicą między czterocyfrowymi a trzycyfrowymi uprawnieniami do plików ...
NerdOfCode

Odpowiedzi:

11

Pierwsza cyfra w czterocyfrowym uprawnieniu to suma ustawionego identyfikatora użytkownika (4), ustawionego identyfikatora grupy (2) i lepkiej (1). Trzycyfrowe uprawnienie jest jak czterocyfrowe uprawnienie z pierwszą cyfrą ustawioną na zero. A zatem:

  • 0644 jest dokładnie taki sam jak 644.
  • 1644 jest jak 644, ale bit lepki jest również ustawiony
  • 4644 jest jak 644, ale ustawiony jest również ustawiony bit identyfikatora użytkownika.

Przykłady zastosowań uprawnień do czwartej cyfry

Jeśli wykonywany jest plik o ustawionym identyfikatorze użytkownika, jest on wykonywany tak, jakby był właścicielem pliku, a nie wykonującym. Tak więc, na przykład, /bin/mountzwykle jest własnością root i ma uprawnienia 4755, gdzie 4 oznacza, że ​​nawet jeśli zostanie wykonane przez zwykłego użytkownika, będzie działać z uprawnieniami właściciela (root).

Ustawienie identyfikatora grupy w katalogu jest przydatne do udostępniania plików.

Lepki bit jest używany w katalogach, takich jak /tmp, aby wszyscy użytkownicy mogli tworzyć pliki, ale uniemożliwiał nie-właścicielom usuwanie plików innych osób. Zatem uprawnienia /tmpwynoszą zwykle 1777, gdzie 1 oznacza, że ​​bit lepki jest ustawiony.

Dokumentacja

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 pominięte cyfry są zerami wiodącymi. Pierwsza cyfra wybiera ustawiony identyfikator użytkownika (4) i identyfikator grupy (2) oraz atrybuty ograniczonego usuwania lub lepkiego (1). Druga cyfra określa uprawnienia użytkownika, który jest właścicielem pliku: read (4), write (2) i execute (1); trzeci wybiera uprawnienia dla innych użytkowników w grupie plików, z tymi samymi wartościami; i czwarty dla innych użytkowników spoza grupy plików, o takich samych wartościach.

John1024
źródło