Chmod Calculator
Konwertuj między liczbowymi a symbolicznymi uprawnieniami UNIX.
O tym narzędziu
Chmod Calculator tłumaczy między trzema sposobami wyrażania uprawnień plików UNIX: oktalnym (755, 644), symbolicznym (rwxr-xr-x, rw-r--r--) i trybem symbolicznym (u=rwx,go=rx, formą, którą sam chmod akceptuje jako input). Klikaj checkboxy read/write/execute dla owner/group/other, a trzy reprezentacje aktualizują się synchronicznie, z odpowiadającym poleceniem chmod pokazanym gotowym do skopiowania.
Bity specjalne też są obsługiwane: setuid (4000), setgid (2000) i sticky (1000) — bity, które zamieniają /tmp w dzielony zapisywalny katalog, gdzie użytkownicy nie mogą usuwać swoich plików (sticky), i które pozwalają binarkom jak passwd eskalować uprawnienia (setuid). Wyświetlanie adnotuje każdy z implikacją bezpieczeństwa, byś wiedział, co zaraz zastosujesz.
Kiedy używać tego narzędzia
- Hardening drzew plików serwera webowego. Potwierdź
644dla plików i755dla katalogów przed zmianą czegokolwiek wchmod -R. - Troubleshooting "permission denied". Zdekoduj wynik
ls -lna oktalny, by porównać z tym, czego oczekuje Twoja aplikacja. - Konfiguracja katalogów dzielonych. Ustaw poprawną kombinację bitu sticky (
1777) dla wielouserowego folderu upload. - Nauka uprawnień UNIX. Interaktywne checkboxy bitów to najszybszy sposób, by zrozumieć, jak oktalny mapuje się na rwx.
O umask i domyślnych uprawnieniach
umask jest odwrotnością wyjścia kalkulatora — mówi kernelowi, które bity wyłączyć przy tworzeniu nowego pliku lub katalogu. Popularny umask 022 daje 644 dla plików i 755 dla katalogów domyślnie; bardziej restrykcyjny umask 077 daje 600 dla plików i 700 dla katalogów (prywatne dla ownera). Wybór właściwego umask systemowo jest efektywniejszy niż chmod-owanie każdego pliku osobno.
Najczęstsze pytania
Czym różni się 644 od 755?
644 to "owner czyta/pisze, wszyscy inni tylko czytają" — właściwy default dla plików statycznych (HTML, CSS, obrazy). 755 dodaje execute dla wszystkich, co dla plików statycznych nic nie znaczy, ale jest niezbędne dla katalogów (bez execute na katalogu nie można cd do niego) i dla skryptów/binarek. Reguła kciuka: 644 dla plików, 755 dla katalogów.
Co właściwie robi setuid?
/usr/bin/passwd ma setuid root, by zwykły użytkownik mógł zmienić swoje hasło (co wymaga zapisu do /etc/shadow). To potężne, ale niebezpieczne uprawnienie; tylko binarki systemowe powinny je mieć, nigdy skrypty użytkownika. Skrypty powłoki ignorują setuid ze względów bezpieczeństwa w nowoczesnym UNIX.
Dlaczego execute jest potrzebne na katalogach?
cd do folderu, wylistować jego zawartości (z ls potrzebne jest też read) ani odczytać żadnych plików wewnątrz, nawet jeśli te pliki mają uprawnienie read. Katalog z trybem tylko-do-odczytu (444) jest zepsuty — widzisz nazwy, ale nie możesz stat-ować żadnego z nich.
Do czego dobry jest bit sticky?
/tmp używa 1777 — każdy może pisać, ale możesz usunąć tylko swoje pliki. Bez sticky każdy mógłby rm-ować plików tymczasowych innych. Bit pochodzi z legacy zastosowania na plikach wykonywalnych (trzymał tekst w swapie), teraz przestarzałego na plikach; na katalogach nadal bardzo użyteczny.