Używanie kodów ósemkowych ma dwie zalety, o których mogę myśleć, z których żadna nie jest tak ogromna:
- Są krótsze, łatwiejsze do pisania.
- Kilka rzeczy je rozumie, a jeśli rutynowo z nich korzystasz, nie będziesz drapał się po głowie (lub biegał do dokumentacji), kiedy się na nie natkniesz. Np. Musisz użyć ósemki dla
chmod
w Perlu lub C.
Czasami naprawdę proste narzędzia nie obsługują wersji „przyjaznych”; szczególnie w obszarach użytkownika innych niż GNU.
Ponadto niektóre narzędzia wypluwają ósemkowe. Na przykład, jeśli biegniesz, umask
aby zobaczyć, jaki jest twój aktualny umask, wypluje go w postaci ósemkowej (choć w bash, umask -S
ma symboliczne znaczenie).
Krótko mówiąc, powiedziałbym, że jedynym powodem, aby preferować je, jest wpisywanie mniejszej liczby znaków, ale nawet jeśli zdecydujesz się ich nie używać, powinieneś wiedzieć, w jaki sposób są one mapowane, abyś mógł wymyślić kod ósemkowy po uruchomieniu w jedną z rzeczy, które tylko ósemkowe. Ale nie musisz od razu wiedzieć, że 5 map rx
, wystarczy, że będziesz w stanie to rozgryźć.
chmod
w Perlu lub C wymaga użycia reprezentacji ósemkowej, nie jest tak naprawdę zaletą, ponieważ reprezentacja już istniała.Chyba zbyt długo używałem ósemki.
7 to rwx (zrób cokolwiek z tym), 5 to rx (musisz go przeczytać, aby go wykonać), 6 to wr (dowolny plik danych, który musisz zmodyfikować), 4 to r (pozwolimy ci na to spojrzeć), i 0 to - (przepraszam, nie ma tu nic do zobaczenia). A zamówienie to Ja, My, Wszyscy. To są podstawowe kombinacje.
755 Mogę to zmienić i uruchomić, każdy inny może to uruchomić.
644 Mogę to zmienić, każdy może to przeczytać.
444 Przeczytaj tylko dla wszystkich, już tu jesteśmy.
500 Mogę to wykonać, nie chcę, żeby to się zmieniło, wszyscy inni się rozłączają.
Dla mnie to krótko, do rzeczy. 9 znaków oraz specyfikacja pliku i przejdź dalej.
źródło
Nigdy tak naprawdę nie podobało mi się przedstawienie ósemkowe, zawsze wybrałem prostą
rwxr-xr-x
notację, ponieważ wydaje mi się to prostsze. Jednak z tego, co zbieram, istnieje reprezentacja ósemkowa, aby ułatwić nam zapamiętywanie (nie widzę, jak to działa).Jedyną inną możliwą korzyścią, jaką widzę przy stole ósemkowym, jest brak dwuznaczności. 8 różnych konfiguracji bitów uprawnień jest reprezentowanych przez jeden odrębny numer, co z pewnością pomaga niektórym osobom przypadkowo ustalić miejsce, w
w
którym nie powinny.Niestety zapamiętałem ten stół:
źródło
/tmp
, w tym sticky bit) zajmuje 12 bitów, wygodnym rozmiarze na PDP, zwłaszcza PDP-8. Gdyby zastosowali szesnastkę, naturalne odwzorowanie jednego zestawu uprawnień na cyfrę szesnastkową wymagałoby 16-bitowej maszyny słów, którą nie były wszystkie PDP. Zmarnowałby również 3 bity lub wymagałby wymyślenia zastosowania dla tych bitów, co prawdopodobnie skomplikowałoby permowe uniksowe zmiany bez rzeczywistej korzyści.Myślę, że powodem jest znowu - historia. Początkowo jedyne były wartości ósemkowe. Te symboliczne przyszły później.
Wolę te symboliczne. Zwłaszcza jeśli chcesz zmienić istniejące wartości bez dotykania innych części.
Jak
chmod -R u=rwx,g-w+X,o=-
zrobić w ósemkowy ...źródło
Zauważ, że tryby ósemkowe mogą usuwać bity setuid i setgid w niektórych systemach.
Fedora 16:
(
2
jest zachowany)FreeBSD 9:
(
2
stał się a0
)Jeśli chcesz zmienić uprawnienia do pliku lub katalogu, lepiej jest po prostu określić bity, które chcesz zmienić (np.
chmod o= dir
Lubchmod o-rwx dir
w powyższym przykładzie).źródło
Historia wyjaśnia, dlaczego istnieją tryby ósemkowe , ale myślę, że funkcjonalność jest przyczyną istnienia formy mnemonicznej. Wszystkie punkty dotyczące innych narzędzi wykorzystujących wyłącznie tryby ósemkowe są całkowicie poprawne i myślę, że musisz się ich nauczyć i poznać. Niemniej jednak uważam, że konserwatywni administratorzy nie widzą prawdziwej użyteczności, która pochodzi z postaci mnemonicznej.
Forma ósemkowa, szczególnie używana rekurencyjnie, zmusza administratorów do robienia głupich rzeczy. A raczej dodane zaniedbanie powoduje, że okazuje się głupie. Ilekroć natkniesz się na jakiś folder z dużą ilością plików tekstowych i
x
ustawionym bitem, masz dowód.Dlaczego ktoś miałby tak ustawić
x
? Ponieważ trudno jest tego nie zrobić, chyba że użyjesz formy mnemonicznej dla trybów. Zastanów się, czy chcesz zresetować uprawnienia/var/www
i nie uruchamiasz CGI w starym stylu, więcx
bit powinien zostać usunięty. Jednakx
bit służy do innego celu w katalogach. W rezultacie robisz cośroot
takiego jak:Jeśli jednak używasz formy mnemonicznej, możesz nadać jej „przepis”:
która jest krótką formą
chmod -R ugo=rwX /var/www
(osiągnięcie tej samej, ale innej ścieżki:)chmod -R a-x,a+rwX /var/www
.Ale jest jeszcze jedna rzecz, która jest bardziej trywialna, której nie można osiągnąć za pomocą trybów ósemkowych. Nie można wyregulować
user
lubgroup
lubother
maska indywidualnie z postaci ósemkowej.W skrócie: to jak porównywanie skalpela (mnemonika) i ostrego noża kuchennego (ósemki) ... ale wciąż musisz znać bity trybu ósemkowego z innych powodów :)
Myślę, że powodem, dla którego nadal preferowane są tryby ósemkowe , jest nie pisanie w trybie mnemonicznym, ale zbyt konserwatywni administratorzy. I tak, dzwoniąc w 2013 roku, ci nadmiernie konserwatywni administratorzy nadal istnieją i są tu na jakiś czas.
źródło
Kiedy musisz cały czas modyfikować uprawnienia do plików , doceniasz 3 znaki. Często używam wersji
+
lub-
do zmiany uprawnień.Na przykład tworzę nowy PHP, Python lub inny skrypt w moim folderze apache.
chmod a+x
to wszystko co robię, więc można je uruchomić. Czytam to jako „wszystko plus wykonanie”. Teraz wiem, że to zadziała i potrzebowałem tylko 3 postaci.Innym razem używam 644 i 755 automatycznie. Po prostu myślę o tym jako
644
o pliku,755
o skrypcie.źródło
Ładnie pasuje do ustawień umask, które są zwykle podawane w formie ósemkowej (w
pam
lubfstab
).źródło
Sugeruję, że jednym z ważnych powodów jest to, że reprezentacja ósemkowa jest ściśle zgodna z tym, co widzisz
ls -l
(a raczej dzieje się tak, gdy mentalnie konwertujesz liczbę ósemkową na binarną).źródło