Uprawnienia i własność plików
Opanować chmod, chown, sticky bit, SUID/SGID oraz rozumieć, jak uprawnienia zapobiegają nieautoryzowanemu dostępowi
Uprawnienia i własność plików to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Dlaczego uprawnienia mają znaczenie
Uprawnienia do plików określają, kto może odczytywać, zapisywać lub uruchamiać plik. Nieprawidłowo skonfigurowane uprawnienia są jedną z najczęstszych przyczyn eskalacji uprawnień i wycieków danych.
Wyjaśnienie ciągu uprawnień
Po uruchomieniu ls -la przy każdym pliku wyświetlany jest 10-znakowy ciąg uprawnień, na przykład -rwxr-xr--. Należy podzielić go na: typ pliku, uprawnienia właściciela, uprawnienia grupy i uprawnienia pozostałych użytkowników.
$ ls -la /etc/passwd
-rw-r--r-- 1 root root 2847 Jan 10 10:00 /etc/passwd
# - = regular file
# rw- = owner (root) can read+write
# r-- = group can read only
# r-- = others can read onlyUprawnienia liczbowe (ósemkowe)
Uprawnienia można również zapisywać jako liczby ósemkowe: odczyt=4, zapis=2, wykonanie=1. Należy dodać je dla każdej kategorii.
# rwxr-xr-- = 754
# rw-rw-r-- = 664 (world-readable, group-writable)
# rwx------ = 700 (private executable)Zmiana uprawnień: chmod
Polecenie chmod służy do modyfikowania uprawnień. Można używać trybu symbolicznego (u+x) albo ósemkowego (755).
$ chmod 755 script.sh # rwxr-xr-x
$ chmod u+x script.sh # add execute for owner
$ chmod o-r secret.txt # remove read for others
$ chmod 600 id_rsa # SSH key: owner read/write onlyZmiana właściciela: chown
Polecenie chown zmienia właściciela i/lub grupę pliku. Tylko root może zmienić właściciela na innego użytkownika.
$ chown user:group file.txt
$ chown root:root /etc/shadow
$ chown -R www-data:www-data /var/www/html/Uprawnienia specjalne: SUID, SGID, sticky bit
SUID (Set User ID) sprawia, że plik jest uruchamiany z uprawnieniami właściciela. SGID ustawiony na katalogach powoduje, że nowe pliki dziedziczą grupę. Sticky bit uniemożliwia usuwanie plików osobom, które nie są ich właścicielami.
$ ls -la /usr/bin/passwd
-rwsr-xr-x 1 root root 68208 /usr/bin/passwd
# The "s" in owner execute position = SUID
# This runs as root regardless of who calls itZnajdowanie plików binarnych SUID (Privesc)
Atakujący wyszukują pliki binarne SUID w celu eskalacji uprawnień. Dowolny plik binarny SUID z wykorzystaniem znanego exploita lub niewłaściwym zastosowaniem może zapewnić dostęp root.
$ find / -perm -4000 -type f 2>/dev/null
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/pkexec
/bin/mountPlik /etc/shadow
/etc/shadow przechowuje hasła w postaci skrótów i jest dostępny do odczytu wyłącznie dla użytkownika root. Jeśli można go odczytać, można podjąć próbę łamania skrótów offline za pomocą hashcat lub john.
$ ls -la /etc/shadow
-rw-r----- 1 root shadow 1423 Jan 10 /etc/shadow
# Only root and the shadow group can read thisumask: domyślna maska uprawnień
Wartość umask jest odejmowana od 666 (dla plików) lub 777 (dla katalogów), aby ustawić domyślne uprawnienia nowych plików. Wartość umask 022 oznacza, że nowe pliki będą miały uprawnienia 644.
$ umask
0022
$ touch newfile
$ ls -la newfile
-rw-r--r-- 1 user user 0 newfile # 666 - 022 = 644Listy kontroli dostępu (ACL)
ACL rozszerzają tradycyjny model uprawnień systemu Unix, umożliwiając nadawanie poszczególnym użytkownikom uprawnień wykraczających poza trójkę właściciel/grupa/pozostali. Należy używać poleceń getfacl i setfacl.
$ getfacl /var/www/html/
# file: var/www/html/
# owner: root
# group: www-data
user::rwx
group::r-x
other::r-xNiezmienne pliki: chattr
Polecenie chattr +i sprawia, że plik staje się niezmienny — nawet root nie może go modyfikować ani usuwać. Rootkity wykorzystują tę funkcję do ochrony swoich plików. Stan można sprawdzić za pomocą lsattr.
$ chattr +i /etc/passwd # make immutable
$ lsattr /etc/passwd
----i--------e-- /etc/passwd
$ chattr -i /etc/passwd # remove immutabilitySzybki test
Co umożliwia uprawnienie SUID?
Podsumowanie: uprawnienia do plików
Należy dobrze opanować polecenia chmod i chown oraz rozumieć działanie SUID. W CTF-ach i rzeczywistych testach penetracyjnych nieprawidłowo skonfigurowane uprawnienia SUID należą do najczęstszych dróg uzyskania uprawnień root. Zawsze należy sprawdzać uprawnienia wrażliwych plików.
Często zadawane pytania
Czy lekcja „Uprawnienia i własność plików” jest bezpłatna?
Tak — pełny tekst „Uprawnienia i własność plików” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Uprawnienia i własność plików”?
Opanować chmod, chown, sticky bit, SUID/SGID oraz rozumieć, jak uprawnienia zapobiegają nieautoryzowanemu dostępowi Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?
Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Uprawnienia i własność plików”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?
Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Uprawnienia i własność plików
- Zarządzanie użytkownikami i grupami
- Wzmacnianie SSH i uwierzytelnianie za pomocą kluczy
- Reguły zapory iptables i UFW