KWALIFIKACJA INF2 - STYCZEŃ 2018 (test 2)

PYTANIE NR 16.
Administrator systemu Linux wylistował zawartość katalogu /home/szkoła w terminalu i uzyskał następujący wynik. Jaki będzie efekt jego działania, wyświetlony w oknie terminala?
Ilustracja przedstawia fragment terminala systemu Linux, w którym wylistowano zawartość katalogu.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
chmod ug=rw ustawia dokładnie prawa rw- dla właściciela i grupy (usuwa wcześniejsze x), ale nie dotyka klasy o, bo nie została wskazana. Dlatego uprawnienia "inni" pozostają r-x jak w stanie początkowym, co daje zapis -rw- rw- r-x.

Pełne wyjaśnienie:

Wynik ls -l zaczyna się od 10 znaków: 1 znak typu (np. "-" dla pliku zwykłego) oraz 9 znaków uprawnień w trzech trójkach: u (właściciel), g (grupa), o (inni). Każda trójka to kolejno r (odczyt), w (zapis), x (wykonywanie) albo "-" (brak).

Stan początkowy to -rwx --x r-x, czyli:

  • właściciel ma rwx (czyta, zapisuje i uruchamia),
  • grupa ma --x (może tylko uruchamiać),
  • inni mają r-x (mogą czytać i uruchamiać, bez zapisu).

Polecenie chmod ug=rw szkola.txt używa zapisu symbolicznego z operatorem =. Ten operator ustawia dokładnie wskazany zestaw uprawnień dla podanych klas. Zapis ug=rw oznacza: dla u oraz g ustaw rw- (czytanie i zapis, bez wykonywania). To zastępuje wcześniejsze wartości dla tych klas, więc:

  • u: z rwx robi się rw- (znika x),
  • g: z --x robi się rw- (pojawia się r i w, znika x).

Kluczowe jest, że w poleceniu nie ma klasy o. Skoro nie została wymieniona, to jej uprawnienia pozostają bez zmian. Nadal jest więc r-x. Końcowy zapis uprawnień to -rw- rw- r-x, a pozostałe kolumny (właściciel, grupa, rozmiar, data, nazwa) pozostają zgodne z listingiem.

Dlaczego pozostałe odpowiedzi są błędne?

  • -rwx --x rw- pozostawia prawa właściciela i grupy jak przed zmianą i zmienia "inni", choć polecenie modyfikuje u i g.
  • -rwx r-x r-x sugeruje, że dodano/pozostawiono x dla u i g, a operator = z rw ustawia brak wykonywania.
  • -rw- rw- rw- błędnie zakłada, że klasa o też zostanie ustawiona na rw- albo że brak jej wskazania "resetuje" ją do innej wartości; w tym poleceniu o nie jest modyfikowane.

Wskazówka egzaminacyjna: zawsze rozdziel analizę na trzy kroki: (1) odczytaj u/g/o ze stanu początkowego, (2) zastosuj regułę operatora (= to "ustaw dokładnie"), (3) zostaw bez zmian klasy niewymienione w chmod.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To notacja uprawnień pliku w Linux. Pierwszy znak ("-") oznacza plik zwykły, a potem są trzy trójki dla: właściciela (u), grupy (g) i innych (o). r to odczyt, w zapis, x wykonywanie, a - brak prawa.
Zapis ug=rw ustawia dokładnie uprawnienia rw- dla właściciela (u) i grupy (g): daje odczyt i zapis, usuwa wykonywanie. Klasa o (inni) nie jest tu wymieniona, więc jej uprawnienia pozostają takie, jak były przed zmianą.
W trybie symbolicznym chmod modyfikuje tylko te klasy, które wskażesz (np. u, g). Operator = ustawia dokładny zestaw bitów, ale wyłącznie w obrębie wskazanych klas. Jeśli nie ma litery o, to uprawnienia "inni" są zachowane.
u=rw ustawia właścicielowi dokładnie rw- (czyli usuwa ewentualne wcześniejsze x). Natomiast u+rw tylko dodaje odczyt i zapis, ale nie usuwa innych praw, które już były (np. jeśli było x, to zostaje).
Zawsze czytaj 9 znaków po typie pliku jako trzy bloki po 3 znaki: u (właściciel), potem g (grupa), a na końcu o (inni). W każdym bloku kolejność jest stała: r, w, x.
Tak. Ponieważ użyto operatora = i wskazano tylko rw, to efekt dla u i g to rw-. Oznacza to, że jeśli wcześniej było x, to zostanie usunięte. To częsty "haczyk" w zadaniach egzaminacyjnych.
Po zmianie właściciel ma rw-, grupa ma rw-, a inni pozostają r-x, bo klasa o nie jest modyfikowana. Końcowy zapis to: -rw- rw- r-x. W praktyce oznacza to: inni nadal mogą czytać i uruchamiać plik.
Bo polecenie dotyczy tylko klas u i g. Żeby "inni" mieli rw-, w poleceniu musiałoby wystąpić o=rw (albo np. a=rw). W tym zadaniu o ma pozostać niezmienione jako r-x.
W praktyce | przekazuje standardowe wyjście pierwszej komendy na wejście drugiej. chmod zwykle nie wypisuje nic na standardowe wyjście, więc potok nie "dostarcza danych" do ls. Samo ls -l nadal może wykonać listing bieżącego katalogu, jeśli nie ma argumentów.
Ćwicz na VM z Linux: wykonuj ls -l, zmieniaj uprawnienia przez chmod u=…, g=…, o=…, a=… oraz operatory +, -, =. Po każdej zmianie sprawdzaj efekt w notacji symbolicznej i zapisuj wnioski.
info

Statystycznie 46% uczniów zna prawidłową odpowiedź. trudne

W praktyce zawodowej kluczowe jest to, że chmod ug=rw ustawia dokładnie prawa rw- dla właściciela i grupy (usuwa wcześniejsze x), ale nie dotyka klasy o, bo nie została wskazana.

Źródła:

  • man7.org Linux man-pages: chmod(1) — opis składni symbolicznej i operatora '=', https://man7.org/linux/man-pages/man1/chmod.1.html (dostęp: 2026-02-28)
  • man7.org Linux man-pages: ls(1) — format długiego listingu i prezentacja uprawnień, https://man7.org/linux/man-pages/man1/ls.1.html (dostęp: 2026-02-28)
  • GNU Coreutils Manual: "chmod invocation" — zmiana trybów dostępu, klasy u/g/o i operatory, https://www.gnu.org/software/coreutils/manual/html_node/chmod-invocation.html (dostęp: 2026-02-28)

Materiały:

  • Strona podręcznika systemowego: man chmod oraz man ls
  • Dokumentacja GNU Coreutils (sekcja chmod)
  • Ćwiczenia praktyczne w VM z Linux: zmiana uprawnień i obserwacja ls -l

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego