Uprawnienia Plików i Katalogów
Zadanie 11: Uprawnienia Plików i Katalogów
Wstęp
W systemie Linux wszystko jest plikiem (prawie), a każdy plik ma właściciela i przypisane uprawnienia. Zrozumienie, jak czytać i zmieniać te uprawnienia, to absolutna podstawa bezpieczeństwa i pracy zespołowej w systemie. System uprawnień opiera się na triadzie: Read (Czytanie), Write (Zapis), eXecute (Wykonywanie) dla trzech grup: User (Właściciel), Group (Grupa), Other (Reszta świata).
Cel zadania
Nauczenie się zarządzania uprawnieniami tradycyjnymi (chmod, chown) oraz poznanie bitów specjalnych, które są kluczowe przy współdzieleniu plików.
Wymagania techniczne
- Dostęp do terminala Linux (może być WSL/Ubuntu).
- Uprawnienia sudo do niektórych operacji (tworzenie użytkowników/grup).
Kroki do wykonania
1. Rozgrzewka: Analiza ls -l
Spójrz na wynik polecenia ls -l w swoim katalogu domowym. Pierwsza kolumna (np. -rw-r--r--) to właśnie uprawnienia.
- Znak 1:
-(plik) lubd(katalog). - Znaki 2-4 (Właściciel):
rw-(Może czytać i pisać, nie może uruchamiać). - Znaki 5-7 (Grupa):
r--(Może tylko czytać). - Znaki 8-10 (Inni):
r--(Mogą tylko czytać).
2. chmod: Zmiana uprawnień (Metoda Symboliczna)
Stwórz plik testowy tajny_dokument.txt i odbierz wszystkim (poza sobą) prawo czytania.
- Utwórz plik:
touch tajny_dokument.txt - Zabierz grupie i innym prawo czytania (
go-r-> group, others minus read):chmod go-r tajny_dokument.txt - Sprawdź wynik:
ls -l tajny_dokument.txt(Powinno być-rw-------)
3. chmod: Metoda Numeryczna (Ósemkowa)
Każde uprawnienie ma wartość: R=4, W=2, X=1. Sumujemy je.
7(4+2+1) = Pełne prawa (rwx)6(4+2) = Czytanie i zapis (rw-)5(4+1) = Czytanie i wykonanie (r-x)4= Tylko czytanie (r--)
Zadanie: Ustaw uprawnienia pliku skrypt.sh tak, abyś Ty mógł go edytować i uruchamiać (7), grupa tylko uruchamiać (5), a inni nic (0).
touch skrypt.sh- Ustaw:
chmod 750 skrypt.sh
4. Zmiana Właściciela (chown i chgrp)
Często musisz przekazać plik innemu użytkownikowi (np. www-data dla serwera WWW).
Załóżmy, że masz użytkownika nowicjusz (z poprzednich zadań) i grupę it_support.
- Zmień właściciela pliku na root (wymaga sudo):
sudo chown root tajny_dokument.txt - Zmień grupę pliku na
users:sudo chgrp users tajny_dokument.txt # LUB jednocześnie owner:group sudo chown nowicjusz:users skrypt.sh
5. Bity Specjalne: Sticky Bit (+t)
Katalog /tmp jest dostępny dla każdego. Dlaczego więc użytkownik A nie może usunąć pliku użytkownika B? Dzięki Sticky Bit.
Symulacja:
- Stwórz katalog
wspolny:mkdir wspolny - Daj wszystkim pełne prawa (niebezpieczne!):
chmod 777 wspolny - Nadaj Sticky Bit:
Teraz tylko właściciel pliku może go usunąć, mimo że katalog jest "otwarty".chmod +t wspolny # lub chmod 1777 wspolny
6. Bity Specjalne: SGID (+s) na katalogu
Bardzo przydatne przy pracy grupowej. Jeśli nadasz SGID katalogowi, każdy NOWY plik w nim utworzony odziedziczy grupę katalogu (a nie grupę główną twórcy).
- Stwórz katalog
projekt_zespolowy. - Zmień grupę na
sudo(lub inną wspólną):sudo chgrp sudo projekt_zespolowy - Nadaj SGID:
sudo chmod g+s projekt_zespolowy # lub chmod 2775 projekt_zespolowy - Wejdź i stwórz plik. Sprawdź
ls -l. Plik powinien należeć do grupysudoautomatycznie.
[!IMPORTANT] Zadanie do oddania: Prześlij zrzut ekranu terminala pokazujący wyniki polecenia
ls -ldla:
- Pliku z uprawnieniami
750.- Katalogu z ustawionym Sticky Bit (literka
tna końcu uprawnień).- Katalogu z ustawionym SGID (literka
sw sekcji grupy).