Kalkulator Chmod

Klasa Odczyt Zapis Wykonaj
Właściciel
Grupa
Inni
Dalej

Uprawnienia plików w systemie Unix składają się z trzech trójek, odczyt, zapis, wykonanie dla użytkownika, grupy i pozostałych, które zwięźle zwijają się do trzycyfrowej liczby ósemkowej. chmod 755 script.sh to rwxr-xr-x: właściciel ma wszystko, a grupa i pozostali mają odczyt i wykonanie. Ten kalkulator pozwala przełączać każde pole wyboru i na bieżąco obserwować zmianę wartości ósemkowej, albo wkleić liczbę ósemkową i zobaczyć jej rozkład na rwx, wraz z dokładnym poleceniem chmod gotowym do skopiowania.

Jak działają uprawnienia chmod

  1. 1

    Przełącz 9 bitów uprawnień

    Trzy grupy (użytkownik, grupa, pozostali) × trzy uprawnienia (odczyt, zapis, wykonanie) = 9 pól wyboru.

  2. 2

    Każda grupa staje się jedną cyfrą ósemkową

    Odczyt = 4, zapis = 2, wykonanie = 1. Zsumuj bity, które chcesz włączyć.

  3. 3

    Odczytaj wynikową postać ósemkową i symboliczną

    np. 755 → rwxr-xr-x; 644 → rw-r--r--; 600 → rw-------.

  4. 4

    Skopiuj polecenie chmod

    Narzędzie pokazuje polecenie chmod dla bieżących uprawnień, gotowe do skopiowania. Przykłady: chmod 755 nazwa_pliku, chmod u+x nazwa_pliku, chmod -R 755 katalog.

Wartości bitów uprawnień

Bit Wartość Znaczenie dla plików Znaczenie dla katalogów
Odczyt 4 Można przeglądać zawartość Można wyświetlać listę wpisów
Zapis 2 Można modyfikować Można tworzyć / usuwać / zmieniać nazwy wpisów
Wykonanie 1 Można uruchomić jako program Można wejść (cd do środka, dostęp do zawartości)

Najczęstsze wartości chmod

Ósemkowo Symbolicznie Typowe zastosowanie
777 rwxrwxrwx Zapisywalne przez wszystkich, niebezpieczne; rzadko poprawne
755 rwxr-xr-x Skrypty, pliki binarne, katalogi
750 rwxr-x--- Skrypty prywatne dla Ciebie i Twojej grupy
700 rwx------ Skrypty prywatne tylko dla Ciebie (SSH, ~/.ssh)
644 rw-r--r-- Publiczne dokumenty, obrazy, HTML
640 rw-r----- Konfiguracje odczytywalne przez grupę
600 rw------- Prywatne konfiguracje, klucze prywatne SSH, ~/.netrc
444 r--r--r-- Pliki publikowane tylko do odczytu
400 r-------- Prywatne, tylko do odczytu (rzadko poprawne; użyj 600)

Uprawnienia specjalne (rzadkie, ale ważne)

  • setuid (4xxx): uruchamia plik jako jego właściciel, niezależnie od tego, kto go wykonuje. /usr/bin/passwd korzysta z tego mechanizmu.
  • setgid (2xxx): w przypadku plików uruchamia się jako grupa. W katalogach nowe pliki dziedziczą grupę katalogu.
  • sticky bit (1xxx): w katalogach tylko właściciel pliku może go usunąć lub zmienić mu nazwę. /tmp korzysta z tego mechanizmu.

Czterocyfrowe liczby ósemkowe obejmują te bity: chmod 4755 setuid-binary włącza setuid obok 755.

Symboliczny chmod

Wielu administratorów woli postać symboliczną przy zmianach przyrostowych:

  • chmod u+x script, dodaje uprawnienie wykonania tylko dla właściciela.
  • chmod go-w file, usuwa uprawnienie zapisu dla grupy i pozostałych.
  • chmod a+r file, nadaje uprawnienie odczytu wszystkim (użytkownik, grupa, pozostali).
  • chmod u=rw,go=r file, ustawia dokładnie te bity.
  • chmod -R 755 directory, rekurencyjnie.

Najczęstsze błędy

  • 777 na folderach z przesyłanymi plikami: wygląda, jakby „naprawiało uprawnienia”, ale w rzeczywistości otwiera serwer na atakujących. Użyj węższej kombinacji (np. 755 z poprawną własnością grupy).
  • chmod -R 644 na katalogach: usuwa uprawnienie wykonania z katalogów, więc nie da się do nich wejść poleceniem cd. Użyj 755 dla katalogów i 644 dla zwykłych plików.
  • 0600 vs 600: wiodące zero oznacza liczbę ósemkową w języku C i w powłoce; większość implementacji chmod akceptuje oba zapisy.
  • Umask: nowe pliki dziedziczą 666 minus umask. Domyślny umask 022 daje pliki 644 i katalogi 755.

Najczęściej zadawane pytania

Zazwyczaj chcesz, aby właściciel mógł modyfikować, a wszyscy pozostali mogli wyświetlać listę i przechodzić do środka. 755 = rwx dla właściciela, r-x dla grupy i pozostałych, dokładnie taka kombinacja.

Prawie nigdy. 777 pozwala każdemu w systemie modyfikować plik. W systemach wielu użytkowników jest to luka bezpieczeństwa; w systemach jednego użytkownika jest zbędne (właściciel ma już rwx przy 755). Jeśli aplikacja internetowa wydaje się wymagać 777, prawdziwym rozwiązaniem jest poprawne ustawienie własności (chown) lub przynależność do grupy.

Katalog ~/.ssh: 700. Klucze prywatne (id_rsa, id_ed25519): 600. Klucze publiczne (.pub): 644. authorized_keys: 600. SSH ze względów bezpieczeństwa odrzuca klucze z szerszymi uprawnieniami.

chown dla właściciela, chgrp dla grupy, to osobne polecenia. chmod zmienia tylko bity, a nie użytkownika ani grupę będącą właścicielem pliku.

Powiązane narzędzia