W poleceniu chmod 755 skrypt.sh systemu Linux uprawnienia zapisano w systemie liczbowym
A. ósemkowym
B. szesnastkowym
C. dwójkowym
D. dziesiętnym
W poleceniu 'chmod 755 skrypt.sh' zapis 755 oznacza uprawnienia podane w systemie ósemkowym, czyli oktalnym. To jest standardowy sposób zapisu trybu dostępu do plików w systemach Linux/Unix, zgodny z podejściem znanym z narzędzi POSIX. Każda cyfra odpowiada jednej grupie użytkowników: właścicielowi pliku, grupie oraz pozostałym użytkownikom. Wartość 7 oznacza 4 + 2 + 1, czyli odczyt, zapis i wykonanie: rwx. Wartość 5 oznacza 4 + 0 + 1, czyli odczyt i wykonanie bez zapisu: r-x. Dlatego 'chmod 755 skrypt.sh' ustawia uprawnienia rwxr-xr-x: właściciel może czytać, modyfikować i uruchamiać skrypt, a grupa oraz inni mogą go tylko czytać i uruchamiać. W praktyce to bardzo często spotykane ustawienie dla skryptów, programów i katalogów publikowanych w systemie. Moim zdaniem warto to dobrze zapamiętać, bo przy administracji Linuksem takie zapisy pojawiają się ciągle: przy wdrażaniu aplikacji, naprawianiu dostępu do plików, konfiguracji usług albo przygotowaniu skryptów automatyzujących pracę. Dobra praktyka jest taka, żeby nie dawać uprawnień większych niż trzeba, więc 755 ma sens dla plików wykonywalnych, ale już niekoniecznie dla plików konfiguracyjnych z hasłami.
W tym pytaniu łatwo się pomylić, bo liczba 755 wygląda jak zwykła liczba dziesiętna. W poleceniu chmod nie chodzi jednak o wartość liczbową w sensie arytmetycznym, tylko o specjalny zapis bitów uprawnień. System dziesiętny używa cyfr od 0 do 9 i jest naturalny w codziennych obliczeniach, ale tutaj każda cyfra ma osobne znaczenie administracyjne. Nie interpretujemy więc 755 jako siedemset pięćdziesiąt pięć, tylko jako trzy pola uprawnień: dla właściciela, grupy i pozostałych. Mylenie tego z systemem dziesiętnym to typowy błąd, zwłaszcza gdy ktoś patrzy tylko na cyfry, a nie na kontekst polecenia. System dwójkowy też może kusić, bo uprawnienia w Linuksie faktycznie wynikają z bitów: odczyt, zapis i wykonanie można traktować jako ustawione albo nieustawione flagi. Tyle że w poleceniu chmod te trzy bity są dla wygody grupowane i zapisywane jako jedna cyfra ósemkowa. Na przykład rwx to 111₂, czyli 7 w systemie ósemkowym, a r-x to 101₂, czyli 5. Zapis 755 nie jest więc zapisem binarnym, bo w systemie dwójkowym występują tylko cyfry 0 i 1. System szesnastkowy również nie pasuje. W informatyce jest bardzo popularny, na przykład przy adresach pamięci, kolorach HTML czy maskach bitowych, ale używa cyfr 0-9 oraz liter A-F i zwykle grupuje bity po cztery. Mechanizm uprawnień chmod tradycyjnie stosuje zapis ósemkowy, ponieważ jedna cyfra oktalna idealnie opisuje trzy bity uprawnień rwx. Z mojego doświadczenia najlepiej kojarzyć chmod z układem 4-2-1: read = 4, write = 2, execute = 1. Wtedy od razu widać, skąd bierze się 7, 6, 5 czy 4 i dużo trudniej wpaść w pułapkę z systemem dziesiętnym albo szesnastkowym.