Którego kodu numerycznego należy użyć w poleceniu zmiany uprawnień do folderu w systemie Linux, aby właściciel folderu miał uprawnienia zapisu i odczytu, grupa miała uprawnienia odczytu i wykonania, a pozostali użytkownicy tylko uprawnienia odczytu?
A. 751
B. 654
C. 123
D. 765
Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.12-X-17.01).
Kod 654 wynika bezpośrednio z klasycznego sposobu zapisu uprawnień w systemach Linux/Unix, używanego m.in. przez polecenie chmod. Każda cyfra opisuje inną grupę użytkowników: właściciela, grupę oraz pozostałych. Wartości liczy się jako sumę bitów: odczyt r = 4, zapis w = 2, wykonanie x = 1. Właściciel ma mieć odczyt i zapis, czyli 4 + 2 = 6. Grupa ma mieć odczyt i wykonanie, czyli 4 + 1 = 5. Pozostali mają mieć tylko odczyt, czyli 4. Razem daje to 654, czyli zapis symboliczny rw- r-x r--. W praktyce polecenie mogłoby wyglądać tak: chmod 654 katalog. Trzeba jednak pamiętać o jednej ważnej rzeczy: dla folderów bit x oznacza możliwość wejścia do katalogu i przechodzenia przez niego. Moim zdaniem to jest jeden z tych szczegółów, które łatwo pominąć na początku nauki Linuxa. W realnej administracji katalog, do którego właściciel ma normalnie wchodzić i nim zarządzać, często dostałby raczej uprawnienia z x dla właściciela, np. 754. Ale w tym pytaniu liczymy dokładnie to, co podano w treści, więc poprawny kod to 654.
W tym zadaniu kluczowe jest poprawne przeliczenie uprawnień r, w oraz x na zapis ósemkowy używany przez chmod. Typowy błąd polega na tym, że ktoś traktuje cyfry jak przypadkową kolejność albo zapamiętuje kilka gotowych kodów, zamiast policzyć wartości bitów. W Linuxie odczyt ma wartość 4, zapis ma wartość 2, a wykonanie ma wartość 1. Te wartości sumuje się osobno dla właściciela, grupy i pozostałych użytkowników. Dlatego właściciel z prawem odczytu i zapisu dostaje 6, grupa z odczytem i wykonaniem dostaje 5, a inni z samym odczytem dostają 4. Kod musi więc mieć postać 654. Wartość 765 oznaczałaby dużo szersze prawa: właściciel miałby pełne rwx, grupa miałaby rw-, a pozostali r-x, czyli zupełnie nie to, czego wymaga treść. Kod 751 także nie pasuje, bo daje właścicielowi rwx, grupie r-x, a innym tylko x, bez prawa odczytu. To częsty błąd, bo 751 wygląda podobnie do schematu katalogowego, ale nie realizuje opisu. Wartość 123 jest już w praktyce mało sensowna dla tego przypadku, bo właściciel miałby tylko wykonanie, grupa tylko zapis, a pozostali zapis i wykonanie. Z mojego doświadczenia najlepiej zawsze rozpisać sobie rwx pod spodem, nawet na szybko: 6 to rw-, 5 to r-x, 4 to r--. Przy katalogach trzeba jeszcze pamiętać, że x nie oznacza uruchomienia programu, tylko możliwość wejścia do folderu i przechodzenia przez jego ścieżkę. To ważna różnica administracyjna i dobra praktyka przy ustawianiu bezpiecznych uprawnień.