Encoders & Utilities

Chmod Calculator

Konwertuj między liczbowymi a symbolicznymi uprawnieniami UNIX.

Permissions Type octal (e.g. 755 or 4755) or symbolic (rwxr-xr-x).
-rwsr-xr-x
chmod 4755
Octal
4755
Symbolic
-rwsr-xr-x
Binary
111 101 101
Permission matrix
Read
Write
Execute
Owner
r
w
x
Group
r
·
x
Other
r
·
x
Special bits
setuid
Run as file owner. Common on /usr/bin/passwd.
setgid
Inherit group on directories. Used in shared folders.
sticky
Only owner can delete. Used on /tmp.

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ź 644 dla plików i 755 dla katalogów przed zmianą czegokolwiek w chmod -R.
  • Troubleshooting "permission denied". Zdekoduj wynik ls -l na 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?

Mówi kernelowi "gdy ta binarka się uruchamia, uruchom ją jako owner pliku, nie jako użytkownik wywołujący". /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?

Na katalogu bit execute znaczy "możesz wejść (traverse) ten katalog". Bez execute nie możesz 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?

Na katalogu znaczy "tylko owner pliku (lub root) może go usunąć lub zmienić nazwę". /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.