Przejdź do głównej treści

Kwalifikacja: INF.02 - Administracja i eksploatacja systemów komputerowych, urządzeń peryferyjnych i lokalnych sieci komputerowych

Zawód: Technik informatyk

Kategorie: Systemy operacyjne Bezpieczeństwo i kopie zapasowe Linux/Unix

Słowa kluczowe: Potok w Linuxie Uprawnienia plików w Linuxie chmod w Linuxie

Administrator systemu Linux wylistował zawartość katalogu /home/szkoła w terminalu i uzyskał następujący wynik

-rwx --x r-x 1 admin admin 25 04-09 15:17 szkola.txt
Następnie wydał polecenie
chmod ug=rw szkola.txt | ls -l
Jaki będzie efekt jego działania, wyświetlony w oknie terminala?
A. -rwx --x rw- 1 admin admin 25 04-09 15:17 szkola.txt
B. -rwx r-x r-x 1 admin admin 25 04-09 15:17 szkola.txt
C. -rw- rw- rw- 1 admin admin 25 04-09 15:17 szkola.txt
D. -rw- rw- r-x 1 admin admin 25 04-09 15:17 szkola.txt

Pytanie z egzaminu CKE, styczeń 2018 (arkusz E.12-X-18.01).

Wynik -rw- rw- r-x 1 admin admin 25 04-09 15:17 szkola.txt jest poprawny, bo polecenie chmod ug=rw szkola.txt zmienia uprawnienia tylko dla właściciela pliku, czyli u, oraz grupy, czyli g. Operator = w chmod oznacza ustaw dokładnie takie prawa, a nie dodaj do istniejących. To ważny szczegół. Początkowo plik miał uprawnienia: właściciel rwx, grupa --x, pozostali r-x. Po wykonaniu ug=rw właściciel traci prawo wykonywania x i zostaje z rw-, a grupa traci samo wykonywanie --x i dostaje dokładnie rw-. Uprawnienia dla pozostałych użytkowników, czyli o, nie są ruszane, więc nadal zostaje r-x. Dlatego końcowy zapis to -rw- rw- r-x. W praktyce taka składnia przydaje się, gdy administrator chce ujednolicić prawa dostępu, np. dać właścicielowi i grupie możliwość czytania oraz edycji pliku konfiguracyjnego, ale bez uruchamiania go jako programu. Moim zdaniem warto zapamiętać różnicę między chmod ug=rw, chmod ug+rw i chmod ug-rw, bo to częsty powód pomyłek na Linuxie. Dobrą praktyką administracyjną jest też sprawdzanie efektu poleceniem ls -l szkola.txt, a przy pracy produkcyjnej ostrożne odbieranie prawa x, szczególnie dla skryptów i katalogów.
Najczęstsza pomyłka w tym zadaniu polega na potraktowaniu chmod ug=rw tak, jakby dopisywało prawa do istniejących uprawnień albo zmieniało wszystkie trzy klasy użytkowników. Tak jednak nie działa operator =. W symbolicznym zapisie chmod znak = ustawia dokładnie wskazany zestaw praw dla wybranych klas, więc wcześniejsze prawa w tych klasach są zastępowane. Jeżeli właściciel miał rwx, to po ug=rw nie zachowa x, tylko dostanie rw-. Jeżeli grupa miała --x, to również nie zachowa x, lecz będzie miała rw-. To nie jest operacja dodawania, jak przy ug+rw. Gdyby użyto plusa, wtedy można by mówić o zachowywaniu wcześniejszego x, ale tutaj sytuacja jest inna. Niepoprawne jest też założenie, że zmienią się prawa dla pozostałych użytkowników. W poleceniu występuje tylko ug, czyli user i group. Brakuje o oraz a, więc uprawnienia others zostają bez zmian. Skoro wcześniej były r-x, to po wykonaniu polecenia nadal są r-x, a nie rw-. Warto też zauważyć, że początkowy zapis -rwx --x r-x oznacza zwykły plik, bo pierwszy znak to -, a dalej są trzy trójki uprawnień: właściciel, grupa i inni. Z mojego doświadczenia najlepiej rozbijać taki zapis na kawałki, bo wtedy mniej miesza się rwx z właścicielem, grupą i pozostałymi. Sam potok | w tym przykładzie nie jest najlepszą praktyką do sekwencyjnego uruchamiania poleceń, bo przekazuje standardowe wyjście jednego programu na wejście drugiego. W codziennej administracji czytelniej byłoby użyć chmod ug=rw szkola.txt && ls -l szkola.txt. Sens zadania dotyczy jednak efektu zmiany uprawnień, a ten prowadzi do zapisu -rw- rw- r-x.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.