Jak to działa
W systemach Unix i Linux każdy plik ma uprawnienia dla trzech klas: użytkownika właściciela, grupy i reszty („inni”). Każda klasa może mieć trzy uprawnienia: odczyt (r), zapis (w) i wykonanie (x). chmod to polecenie, które je zmienia.
Uprawnienia przedstawia się na dwa równoważne sposoby: liczbowy (ósemkowy) i symboliczny. W systemie ósemkowym każda klasa to cyfra od 0 do 7, suma 4 (odczyt) + 2 (zapis) + 1 (wykonanie). W zapisie symbolicznym są dziewięcioma znakami, na przykład rwxr-xr-x.
Początkowa czwarta cyfra kontroluje bity specjalne: setuid (4), setgid (2) i sticky (1). To narzędzie konwertuje w obie strony: zaznacz uprawnienia polami wyboru, aby uzyskać zapis ósemkowy, symboliczny i gotowe do skopiowania polecenie, albo wklej wartość, aby zobaczyć jej odwzorowanie.
Przykłady
755rwxr-xr-xWłaściciel może odczytywać, zapisywać i wykonywać; grupa i inni tylko odczytywać i wykonywać. Typowe dla katalogów i skryptów.644rw-r--r--Właściciel odczytuje i zapisuje; grupa i inni tylko odczytują. Częste w plikach danych i konfiguracji.600rw-------Tylko właściciel może odczytywać i zapisywać; nikt inny nie ma dostępu. Zalecane dla kluczy prywatnych.4755rwsr-xr-xPierwsza cyfra 4 włącza setuid: program działa z uprawnieniami właściciela pliku.Przypadki użycia
- Nadać uprawnienie do wykonania skryptowi (chmod 755) lub ograniczyć plik z wrażliwymi danymi (chmod 600).
- Przełożyć liczbę ósemkową z poradnika na to, co pokazuje ls -l, bez ręcznego obliczania bitów.
- Zrozumieć, jakie uprawnienia faktycznie nadaje polecenie, przed uruchomieniem go na serwerze.
Najczęstsze pytania
Dlaczego 755 to tylko trzy cyfry, a czasem pojawiają się cztery?
Trzy cyfry reprezentują użytkownika, grupę i innych. Czwarta cyfra, opcjonalna i na początku, kontroluje bity specjalne (setuid, setgid, sticky); jeśli wynosi 0, jest pomijana, dlatego 0755 i 755 to to samo.
Co oznaczają s i t w rwsr-xr-t?
Zastępują x, aby wskazać bit specjalny. s w bloku użytkownika to setuid, w bloku grupy to setgid; t w bloku innych to sticky bit. Wielką literą (S/T) bit jest aktywny, ale bez prawa wykonania.
Jaka jest różnica między chmod 755 a chmod u=rwx,g=rx,o=rx?
Żadnej: dają dokładnie te same uprawnienia. Forma ósemkowa jest bardziej zwięzła, a symboliczna czytelniejsza. chmod akceptuje też zmiany względne, takie jak u+x (dodanie wykonania właścicielowi) bez naruszania reszty.
Jakie uprawnienia powinien mieć prywatny klucz SSH?
600 (rw-------). SSH odmawia użycia klucza prywatnego, jeśli grupa lub inni mogą go odczytać. Folder ~/.ssh zwykle używa 700.