Pack Camo

Kalkulator chmod

Uprawnienia plików Unix jako pola wyboru, ósemkowo jak 755 i symbolicznie jak rwxr-xr-x.

Wszystko działa lokalnie — nic nie jest wysyłane.

Uprawnienia

KtoOdczyt (4)Zapis (2)Wykonywanie (1)Wartość
Właściciel7
Grupa5
Pozostali5
Bity specjalne

Popularne tryby

Polecenie

  • Liczbowe
    chmod 755 script.sh
  • Symboliczne
    chmod u=rwx,g=rx,o=rx script.sh
Ósemkowo
0755
Symbolicznie
rwxr-xr-x
ls -l
-rwxr-xr-x
Forma chmod
u=rwx,g=rx,o=rx

Kto co może

  • Właściciel: może go czytać, go zmieniać i uruchamiać go jako program.
  • Członkowie grupy: może go czytać i uruchamiać go jako program.
  • Wszyscy pozostali: może go czytać i uruchamiać go jako program.

Oblicz uprawnienia plików Unix i polecenie chmod

Ten kalkulator chmod pokazuje uprawnienia plików w Linuksie i macOS w każdej potrzebnej postaci: zaznacz odczyt, zapis i wykonywanie dla właściciela, grupy i wszystkich pozostałych albo wpisz tryb ósemkowy, np. <code>755</code>, lub symboliczny, np. <code>rwxr-xr-x</code>, a pozostałe widoki same się zaktualizują. Otrzymasz pasujące polecenie <code>chmod</code> w formie liczbowej i symbolicznej, bity setuid, setgid i sticky oraz zrozumiały opis tego, kto co może. Wszystko jest liczone w Twojej przeglądarce.

Jak obliczyć uprawnienia chmod

  1. 1Zaznacz uprawnienia dla pól Właściciel, Grupa i Pozostali albo wpisz tryb ósemkowy, np. 644, lub symboliczny, np. rw-r--r--. Możesz też wkleić całą kolumnę z ls -l, np. drwxr-sr-x.
  2. 2Wybierz Plik lub Katalog: odczyt, zapis i wykonywanie znaczą dla nich co innego, a objaśnienie zmienia się odpowiednio.
  3. 3W razie potrzeby dodaj bit setuid, setgid lub sticky albo zacznij od gotowego trybu, np. 755 lub 600.
  4. 4Wpisz ścieżkę, włącz Rekurencyjnie, jeśli zmiana ma objąć całe drzewo, i skopiuj polecenie chmod.

Jak działają uprawnienia ósemkowe

Każdy plik ma trzy zestawy uprawnień: dla właściciela (u), dla grupy (g) i dla pozostałych (o), czyli wszystkich innych. Każdy zestaw to trzy bity — odczyt, zapis i wykonywanie — a cyfra ósemkowa to po prostu ich suma: odczyt to 4, zapis 2, a wykonywanie 1. Zatem 7 to rwx (4+2+1), 6 to rw- (4+2), 5 to r-x (4+1), a 4 to samo r--.

Trzy cyfry tworzą cały tryb w kolejności: właściciel, grupa, pozostali. chmod 755 daje więc właścicielowi rwx, a wszystkim innym r-x, co zapisuje się jako rwxr-xr-x, a chmod 644 daje właścicielowi rw-, a pozostałym r--, czyli rw-r--r--. Czwarta cyfra z przodu przechowuje bity specjalne: 4 to setuid, 2 to setgid, a 1 to sticky, jak w chmod 1777.

Popularne wartości chmod

644 (rw-r--r--)
Domyślne dla zwykłych plików: właściciel może edytować, wszyscy mogą czytać. Dobre dla HTML, obrazów i większości konfiguracji.
755 (rwxr-xr-x)
Domyślne dla katalogów, skryptów i programów: wszyscy mogą czytać i uruchamiać, zmieniać może tylko właściciel.
600 (rw-------)
Prywatne pliki, które czyta tylko właściciel: klucze prywatne SSH, pliki .env, dane logowania. ssh odrzuca klucz prywatny, który mogą czytać inni.
700 (rwx------)
Prywatny katalog, np. ~/.ssh, do którego może wejść tylko właściciel.
664 / 775
Jak 644 i 755, ale grupa też może zapisywać: dla wspólnych folderów projektu, gdy współpracownicy są w jednej grupie.
777 (rwxrwxrwx)
Każdy może czytać, zmieniać i uruchamiać. Prawie nigdy nie jest właściwym rozwiązaniem błędu uprawnień, a na serwerze WWW to zagrożenie bezpieczeństwa.
1777 (rwxrwxrwt)
Zapis dla wszystkich ze sticky bit, jak w /tmp: każdy może tworzyć pliki, ale usunąć plik może tylko jego właściciel.

Uprawnienia katalogów

W katalogu te trzy litery znaczą co innego. Odczyt pozwala wyświetlić nazwy w środku; zapis pozwala tworzyć, zmieniać nazwy i usuwać wpisy; wykonywanie (często zwane wyszukiwaniem) pozwala wejść do niego przez cd i sięgać do plików po nazwie. Bez wykonywania odczyt i zapis niewiele dają, dlatego katalogi prawie zawsze mają x tam, gdzie mają r — 755 zamiast 644.

Usunięcie pliku to zmiana katalogu, a nie samego pliku. Każdy, kto ma prawo zapisu i wykonywania w katalogu, może usunąć w nim dowolny plik, nawet cudzy i tylko do odczytu — chyba że katalog ma sticky bit.

Setuid, setgid i sticky bit

W zapisie symbolicznym bity specjalne zastępują literę wykonywania: s, gdy wykonywanie też jest ustawione, i S, gdy nie jest, a dla sticky bit t lub T. Wielka litera zwykle oznacza błąd, bo program z setuid, którego nikt nie może uruchomić, nic nie robi.

Osobliwość GNU coreutils: chmod 755 na katalogu zachowuje istniejący bit setuid lub setgid. Aby je wyczyścić liczbą, podaj pięć cyfr — chmod 00755 — lub użyj chmod g-s.

Setuid (4000, u+s)
Program uruchamia się z uprawnieniami swojego właściciela, a nie wywołującego. Dzięki temu passwd zapisuje /etc/shadow jako root. Linux ignoruje go w skryptach i katalogach.
Setgid (2000, g+s)
Program uruchamia się z uprawnieniami swojej grupy. W katalogu nowe pliki dziedziczą grupę katalogu zamiast grupy głównej twórcy — typowe ustawienie dla wspólnych folderów zespołu (2775).
Sticky bit (1000, +t)
W katalogu usuwać lub zmieniać nazwy plików może tylko właściciel pliku, właściciel katalogu lub root. Współczesny Linux ignoruje go w plikach.

Chmod liczbowy czy symboliczny?

Tryb liczbowy, np. chmod 644 file, ustawia wszystkie bity naraz — tego chcesz, gdy znasz stan końcowy. Forma symboliczna jest elastyczniejsza: chmod u=rw,g=r,o=r file ustawia to samo, a chmod g+w file lub chmod o-rwx file zmieniają tylko wskazane bity i nie ruszają reszty.

Uważaj z chmod -R: jeden tryb dla wszystkich plików i katalogów w drzewie zwykle daje plikom zbędny bit wykonywania. Użyj find . -type d -exec chmod 755 {} + i find . -type f -exec chmod 644 {} +, aby potraktować je osobno, albo wielkiego X w chmod -R u=rwX,go=rX, które dodaje wykonywanie tylko katalogom i plikom, które już je miały. Nowe pliki dostają początkowe uprawnienia z umask: umask 022 daje pliki 644 i katalogi 755. Do dopasowywania nazw plików w skryptach powłoki wypróbuj tester wyrażeń regularnych.

Najczęstsze pytania

Co oznacza chmod 755?
755 daje właścicielowi odczyt, zapis i wykonywanie (7), a grupie i wszystkim innym odczyt i wykonywanie (5 i 5), co zapisuje się jako rwxr-xr-x. To typowy tryb dla katalogów, skryptów i programów.
Co oznacza chmod 644?
644 daje właścicielowi odczyt i zapis (6), a wszystkim innym tylko odczyt (4 i 4), co zapisuje się jako rw-r--r--. To typowy tryb dla zwykłych plików, takich jak strony WWW, obrazy i pliki konfiguracyjne.
Czym różni się 755 od 644?
755 dodaje wykonywanie dla wszystkich. Plik można wtedy uruchomić jako program, a do katalogu można wejść. Używaj 644 dla plików, które są tylko czytane, i 755 dla katalogów i plików wykonywalnych.
Czy chmod 777 jest bezpieczny?
Rzadko. 777 pozwala każdemu użytkownikowi systemu zmienić lub podmienić plik, a na serwerze WWW napastnik, który wejdzie przez jedną stronę, może modyfikować inne. Zamiast tego popraw właściciela przez chown lub daj dostęp grupie (775 lub 664).
Jakie uprawnienia powinien mieć klucz prywatny SSH?
600 (rw-------) lub 400 tylko do odczytu, a sam ~/.ssh — 700. OpenSSH odmawia użycia klucza prywatnego, który mogą czytać inni, i zgłasza "UNPROTECTED PRIVATE KEY FILE".
Co oznacza s lub t w rwsr-xr-x?
s na pozycji właściciela lub grupy to bit setuid lub setgid z ustawionym wykonywaniem; t na pozycji pozostałych to sticky bit. Wielkie S lub T oznacza, że bit specjalny jest ustawiony bez prawa wykonywania pod nim.
Jak zamienić rwxr-xr-x na liczbę?
Podziel na trzy grupy — rwx, r-x, r-x — i w każdej dodaj r=4, w=2 i x=1: 7, 5, 5, co daje 755. Wpisz to w pole symboliczne powyżej, aby przeliczyć od razu.
Czy to narzędzie zmienia jakieś pliki?
Nie. Oblicza tylko tryb i polecenie, a uruchamiasz je samodzielnie. Wszystko dzieje się w Twojej przeglądarce.