Kalkulator chmod — uprawnienia plików Linux
Konwertuj uprawnienia plików Linux między zapisem ósemkowym (755, 644) a symbolami rwx. Gotowe polecenia chmod i ostrzeżenia przed ryzykownymi trybami takimi jak 777 — za darmo, w całości w przeglądarce.
| Odczyt (4) | Zapis (2) | Wykonywanie (1) | Cyfra | rwx | |
|---|---|---|---|---|---|
| Właściciel (u) | 7 | rwx | |||
| Grupa (g) | 5 | r-x | |||
| Pozostali (o) | 5 | r-x |
- Tryb numeryczny (bezwzględny)
chmod 755 file- Tryb symboliczny
chmod u=rwx,go=rx file- Rekurencyjnie (-R)
chmod -R 755 dir- Tylko katalogi
find dir -type d -exec chmod 755 {} +- Tylko pliki
find dir -type f -exec chmod 644 {} +
Wskazówka: chmod -R u+rwX dodaje prawo wykonywania tylko katalogom i plikom, które już są wykonywalne — bezpieczniej niż zbiorcze -R 755.
W Linuksie numeryczny chmod, np. 755, zachowuje istniejące setuid/setgid na katalogach — trzeba je wyczyścić jawnie przez 00755, =755 lub u-s,g-s (BSD/macOS czyści je domyślnie).
Bieżący tryb pliku: stat -c '%a' file (Linux) · stat -f '%Lp' file (macOS)
Kalkulator umask
effective = base & ~umask
Tabela uprawnień plików Linux: najczęstsze wartości chmod
| Ósemkowo | Symbolicznie | Typowe zastosowanie | Właściciel | Grupa | Pozostali |
|---|---|---|---|---|---|
| 400 | r-------- | Klucz prywatny SSH (tylko odczyt) | r-- | --- | --- |
| 600 | rw------- | Pliki prywatne, klucze SSH | rw- | --- | --- |
| 644 | rw-r--r-- | Strony WWW, pliki konfiguracyjne | rw- | r-- | r-- |
| 664 | rw-rw-r-- | Pliki edytowalne przez grupę | rw- | rw- | r-- |
| 666 | rw-rw-rw- | Każdy może edytować — unikać | rw- | rw- | rw- |
| 700 | rwx------ | Katalogi prywatne | rwx | --- | --- |
| 755 | rwxr-xr-x | Skrypty, katalogi WWW | rwx | r-x | r-x |
| 775 | rwxrwxr-x | Katalogi współdzielone w grupie | rwx | rwx | r-x |
| 777 | rwxrwxrwx | Każdy może wszystko — unikać | rwx | rwx | rwx |
| 1777 | rwxrwxrwt | Współdzielone katalogi tymczasowe (/tmp) | rwx | rwx | rwt |
Cyfry uprawnień 0-7 w pigułce
| Cyfra | Binarnie | rwx | Znaczenie |
|---|---|---|---|
| 0 | 000 | --- | Brak uprawnień |
| 1 | 001 | --x | Tylko wykonywanie |
| 2 | 010 | -w- | Tylko zapis |
| 3 | 011 | -wx | Zapis + wykonywanie |
| 4 | 100 | r-- | Tylko odczyt |
| 5 | 101 | r-x | Odczyt + wykonywanie |
| 6 | 110 | rw- | Odczyt + zapis |
| 7 | 111 | rwx | Odczyt + zapis + wykonywanie |
Czym jest chmod?
chmod — change mode — to polecenie Uniksa i Linuksa ustalające, kto może plik czytać, zapisywać lub wykonywać. Każdy plik nosi dziewięć bitów uprawnień w trzech grupach (właściciel, grupa, pozostali), a chmod przyjmuje je albo jako liczbę ósemkową w trybie numerycznym (bezwzględnym), np. chmod 755, albo jako litery w trybie symbolicznym, np. chmod u=rwx,go=rx. Oba zapisy opisują dokładnie te same bity; ten kalkulator tłumaczy między nimi na żywo.
Ósemkowy skrót działa, ponieważ każde uprawnienie jest potęgą dwójki: odczyt to 4, zapis to 2, wykonywanie to 1, a jedna cyfra na klasę to po prostu ich suma. 7 oznacza więc wszystko (4+2+1), 5 to odczyt plus wykonywanie, 6 to odczyt plus zapis, a 0 to zupełny brak uprawnień. Wystarczy przeczytać rwxr-xr-x od lewej trójkami, aby otrzymać 7, 5, 5. Czwarta, wiodąca cyfra koduje tryby specjalne — setuid (4), setgid (2) i bit sticky (1) — i tak właśnie powstają 4755 czy 1777; ich obecność widać w zapisie symbolicznym jako s lub t w miejscu x.
Uprawnienia to pierwsza warstwa bezpieczeństwa Uniksa, a większość codziennych problemów z uprawnieniami sprowadza się do garści wzorców: skrypt, który nie chce się uruchomić, potrzebuje wykonywania (u+x), katalog, do którego nie da się wejść, nie ma bitu x, zasób WWW powinien mieć 644 z katalogami 755 powyżej, a klucz prywatny musi mieć 600, zanim OpenSSH w ogóle go tknie. Błędy skupiają się w ten sam sposób — najsłynniejszy to chmod 777, który „naprawia” błędy dostępu, oddając prawo zapisu każdemu kontu na maszynie. Ta strona trzyma arytmetykę, symbole, gotowe polecenia i ostrzeżenia o ryzyku w jednym miejscu, a ponieważ zapis ósemkowy to po prostu system o podstawie 8, stojącą za nim arytmetykę pozycyjną można zgłębić w konwerterze systemów liczbowych.
# Make a script executable, then verify with ls -l $ ls -l deploy.sh -rw-r--r-- 1 jack staff 512 Jul 17 10:00 deploy.sh $ chmod 755 deploy.sh $ ls -l deploy.sh -rwxr-xr-x 1 jack staff 512 Jul 17 10:00 deploy.sh # The symbolic equivalent of 755 $ chmod u=rwx,go=rx deploy.sh # Read the current mode as a number $ stat -c '%a' deploy.sh # Linux → 755 $ stat -f '%Lp' deploy.sh # macOS → 755
Kluczowe funkcje
Trzy widoki, jeden stan
Macierz pól wyboru, liczba ósemkowa i symboliczny ciąg rwx to pełnoprawne pola wejściowe — edycja dowolnego z nich natychmiast aktualizuje dwa pozostałe, w obu kierunkach.
Bity specjalne potraktowane poprawnie
setuid, setgid i bit sticky są pełnoprawne: czwarta cyfra ósemkowa, reguły wielkości liter s/S i t/T oraz poprawne klauzule symboliczne (u+s, g+s, a+t) renderują się dokładnie tak, jak rozumie je chmod.
Wklejanie ls -l wprost
Można wrzucić cały wiersz ls -l w pole symboliczne — znak typu pliku, kropka SELinux, plus ACL czy macOS-owe @ są obsługiwane — i odzyskać tryb ósemkowy bez żadnego ręcznego przycinania.
Polecenia, które naprawdę da się uruchomić
Numeryczne, symboliczne, rekurencyjne oraz bezpieczniejsza para find -type d / find -type f, każde z przyciskiem kopiowania — plus polecenie stat do odczytu bieżącego trybu pliku i uwaga o czyszczeniu setuid na katalogach w GNU.
Ostrzeżenia o ryzyku podczas pisania
Tryby zapisywalne dla świata zapalają się natychmiast: 777 i 666 są wskazywane wprost, każdy bit zapisu dla pozostałych podnosi flagę, a 1777 jest poprawnie rozpoznawane jako wzorzec z bitem sticky dla katalogów współdzielonych, nie jako błąd.
umask, tabele i permalinki
Wbudowany kalkulator umask pokazuje, co otrzymają nowe pliki i katalogi, dwie tabele referencyjne obejmują najczęstsze tryby oraz cyfry 0-7, a „Kopiuj link” udostępnia dokładny stan — wszystko w 100% w przeglądarce.
Przykłady uprawnień chmod
755 — standard dla skryptów i katalogów WWW
755
rwxr-xr-x — chmod 755 file · chmod u=rwx,go=rx file
Tryb 755 daje właścicielowi pełną kontrolę (odczyt + zapis + wykonywanie = 4 + 2 + 1 = 7), podczas gdy grupa i pozostali mogą czytać i wykonywać, ale nigdy modyfikować (4 + 1 = 5). To dokładnie to, czego potrzebuje skrypt wdrożeniowy albo publiczny katalog WWW: serwer może przechodzić przez katalogi i serwować zawartość, lecz zmieniać ją może tylko właściciel. Kalkulator pokazuje obie formy polecenia — numeryczną 755 i symboliczny odpowiednik u=rwx,go=rx — a wariant tylko dla plików automatycznie schodzi do 644, ponieważ zwykłe pliki nie powinny nosić bitów wykonywania, których nie potrzebują.
600 — prywatny plik dostępny wyłącznie dla właściciela
600
rw------- — właściciel czyta i zapisuje, pozostali nie widzą nic
Tryb 600 (rw-------) to właściwe ustawienie dla kluczy prywatnych SSH, plików .env, danych uwierzytelniających API i wszystkiego, czego żadne inne konto na maszynie nie powinno móc otworzyć. OpenSSH aktywnie to wymusza: klucz czytelny dla grupy lub pozostałych zostaje odrzucony ze słynnym błędem „Permissions 0644 ... are too open”. Wystarczy wczytać preset 600 i skopiować chmod 600 file, a panel ryzyka pozostaje cichy — tak wygląda poprawnie zastosowana zasada najmniejszych uprawnień.
4755 — anatomia setuid: dlaczego x zmienia się w s
4755
rwsr-xr-x — w polu wykonywania właściciela widnieje s zamiast x
Wiodąca 4 to bit setuid: ktokolwiek uruchomi program, ten wykona się z uprawnieniami właściciela pliku — właśnie tak passwd może zaktualizować należący do roota plik w imieniu zwykłego użytkownika. W zapisie symbolicznym pozycja wykonywania właściciela zmienia się z x na s (małe s oznacza, że wykonywanie też jest ustawione; wielkie S oznaczałoby setuid bez wykonywania, co niemal zawsze jest pomyłką). Kalkulator wyświetla czwartą cyfrę ósemkową, zaznacza pole setuid i pokazuje ostrzeżenie, ponieważ pliki wykonywalne z setuid zasługują na świadomą weryfikację.
Dekodowanie wyniku ls -l — wklej cały wiersz
drwxr-xr-x 5 jack staff 160 Jul 17 dist
755
Wystarczy skopiować wiersz prosto z wyniku ls -l i wkleić go w pole symboliczne — bez żadnego przycinania. Narzędzie odczytuje pierwszy token drwxr-xr-x, rozpoznaje wiodące d jako znak typu pliku (katalog), a nie uprawnienie, toleruje kropkę SELinux, plus ACL czy macOS-owe @, które dopisują niektóre systemy, i konwertuje pozostałe dziewięć znaków na ósemkowe 755. To najszybszy sposób, aby podczas code review lub incydentu odpowiedzieć na pytanie „jaką liczbą jest to uprawnienie?” — i działa tak samo z l dowiązań symbolicznych oraz - zwykłych plików.
Jak korzystać z kalkulatora chmod
- 1
Ustawienie uprawnień w dowolny sposób
Wystarczy zaznaczyć pola odczytu, zapisu i wykonywania dla każdej klasy, wpisać tryb ósemkowy taki jak 755 lub 4755 albo zacząć od jednego z presetów — klucz SSH 400, plik prywatny 600, plik WWW 644, skrypt 755 i inne.
- 2
Trzy widoki czytane naraz
Macierz pól wyboru, wartość ósemkowa i symboliczny ciąg rwx pozostają zsynchronizowane w każdym kierunku, a każdy wiersz pokazuje na bieżąco swoją cyfrę i swój trzyznakowy fragment.
- 3
Kopiowanie dokładnie tego polecenia, które jest potrzebne
Pięć gotowych do uruchomienia wariantów aktualizuje się na żywo: tryb numeryczny, symboliczny odpowiednik z inteligentnym grupowaniem, rekurencyjne -R oraz bezpieczniejsza para tylko katalogi / tylko pliki oparta na find -type.
- 4
Dekodowanie istniejących uprawnień
Wystarczy wkleić pełny wiersz ls -l — ze znakiem typu pliku, znacznikami ACL i całą resztą — w pole symboliczne i natychmiast odczytać wartość ósemkową, łącznie z bitami specjalnymi.
- 5
Sprawdzenie umask i udostępnienie wyniku
Sekcja umask pokazuje, co otrzymają nowe pliki i katalogi, a przycisk „Kopiuj link” zapisuje bieżący tryb w adresie URL, który można wrzucić do code review albo runbooka.
Najczęstsze błędy przy chmod
Używanie 777, żeby „naprawić” Permission denied
Otwarcie trybu dla świata zwykle maskuje problem z własnością, zamiast go rozwiązać — i zostawia każdemu kontu na maszynie możliwość modyfikowania plików. Najpierw należy naprawić właściciela; tryb powinien pozostać ścisły.
sudo chmod -R 777 /var/www # dostęp działa, bezpieczeństwa już nie ma
sudo chown -R www-data:www-data /var/www # napraw własność, zostaw 755/644
Zbiorczy chmod -R na katalogu uploadów
Rekurencyjne tryby numeryczne trafiają pliki i katalogi tą samą wartością, więc 755 czyni każdy obraz i dokument „wykonywalnym”, a 777 — zapisywalnym dla świata. Zamiast tego rekurencję dzieli się według typu.
chmod -R 777 uploads/
find uploads -type d -exec chmod 755 {} + && find uploads -type f -exec chmod 644 {} + Zapominanie, że katalogi potrzebują wykonywania
Bit x na katalogu oznacza „można wejść i przechodzić”. Do katalogu 644 nie da się wejść przez cd nawet dla użytkowników, którzy mogą go wylistować — co daje mylące błędy Permission denied poziom niżej.
chmod 644 reports/ # cd reports/ → Permission denied
chmod 755 reports/ # katalogi mają x, więc można do nich wejść
Wysyłka skryptu bez bitu wykonywania
Świeżo utworzony plik dziedziczy domyślne wartości umask, np. 644, więc ./script.sh kończy się Permission denied, dopóki wykonywania nie dostanie przynajmniej właściciel. Runnery CI i entrypointy Dockera potykają się o to nieustannie.
./deploy.sh # bash: ./deploy.sh: Permission denied
chmod u+x deploy.sh && ./deploy.sh
Co można zrobić z kalkulatorem chmod
- Bezpieczne wdrożenia na serwery WWW
- Wystarczy ustawić 755 na katalogach i 644 na plikach w katalogach głównych nginx lub Apache przy użyciu wygenerowanych poleceń find, a panel ryzyka potwierdzi przed wdrożeniem, że nic nie jest zapisywalne dla świata. Gdy katalog wymaga też ochrony basic auth, warto sięgnąć po generator htpasswd.
- Naprawa uprawnień kluczy SSH
- Presety 400 i 600 dają dokładnie to, czego OpenSSH wymaga od kluczy prywatnych, a FAQ omawia komunikat błędu „Permissions 0644 ... are too open”, który pojawia się, gdy klucz pozostaje czytelny dla grupy.
- Dekodowanie uprawnień podczas obsługi incydentów
- Wystarczy wkleić wiersze ls -l z produkcyjnej powłoki wprost w pole symboliczne, aby zamienić rwxr-sr-x na 2755 bez liczenia bitów w pamięci — tryby specjalne, znaczniki ACL i znaki typu pliku są w pełni rozumiane.
- Właściwe tryby na hostingu współdzielonym i FTP
- Panele administracyjne i klienty FTP pytają o tryby numeryczne: 755 dla public_html, 644 dla stron, 600 dla plików konfiguracyjnych z danymi dostępowymi. Wystarczy wczytać preset, spojrzeć w tabelę i skopiować liczbę — bez zgadywania.
- Przygotowanie kontenerów i skryptów CI
- Entrypointy i skrypty hooków potrzebują u+x, zanim Docker albo runner CI będzie mógł je wykonać, a montowane wolumeny dziedziczą tryby hosta. Tutaj można wygenerować dokładny chmod dla każdego przypadku, a zadania, które je uruchamiają, zaplanować w generatorze crontab.
Jak działają uprawnienia plików w Linuksie
- Arytmetyka ósemkowa: 4 + 2 + 1
- Każda klasa użytkowników dostaje jedną cyfrę ósemkową, a cyfra jest sumą odczytu = 4, zapisu = 2 i wykonywania = 1. Wszystkich osiem kombinacji jest możliwych: 0 nic, 1 tylko wykonywanie, 2 tylko zapis, 3 zapis + wykonywanie, 4 tylko odczyt, 5 odczyt + wykonywanie, 6 odczyt + zapis, 7 wszystkie trzy. Tryb taki jak 640 czyta się więc następująco: właściciel 6 (odczyt + zapis), grupa 4 (tylko odczyt), pozostali 0 (nic). Tabela cyfr na tej stronie wypisuje wszystkie osiem wierszy, a macierz pokazuje, jak ta sama suma powstaje przy zaznaczaniu pól.
- Tryb numeryczny (bezwzględny) a tryb symboliczny
- chmod przyjmuje te same bity na dwa sposoby. Tryb numeryczny podaje kompletny wynik — chmod 755 file zastępuje wszystko, co było wcześniej. Tryb symboliczny opisuje zmianę względem bieżącego stanu: chmod u=rwx,go=rx file ustawia klasy jawnie, a chmod g+w file przełącza pojedynczy bit i nie rusza reszty. Numeryczny jest idealny do wymuszania znanego dobrego stanu w skryptach i wdrożeniach; symboliczny błyszczy przy jednorazowych korektach typu u+x. Ten kalkulator generuje oba warianty, z automatycznym scalaniem klas (go=rx, a=rwx) — tak, jak zapisują je doświadczeni administratorzy.
- setuid, setgid i bit sticky
- Czwarta, wiodąca cyfra ósemkowa koduje tryby specjalne: setuid = 4000 uruchamia plik wykonywalny z uprawnieniami właściciela, setgid = 2000 robi to samo dla grupy (a na katalogu sprawia, że nowe pliki dziedziczą jego grupę), zaś bit sticky = 1000 na katalogu współdzielonym ogranicza usuwanie do właściciela każdego pliku — /tmp to kanoniczne 1777. W ls -l zastępują one pozycję wykonywania: małe s lub t, gdy wykonywanie też jest ustawione, wielkie S lub T, gdy nie jest (zwykle błąd konfiguracji wart sprawdzenia). Subtelność GNU/Linux: numeryczny chmod celowo zachowuje istniejące setuid/setgid na katalogach — czyści się je 5-cyfrowym trybem takim jak 00755, klauzulą równości typu =755 albo u-s,g-s, jak opisuje podręcznik GNU coreutils. BSD i macOS czyszczą je przy trybach numerycznych domyślnie.
- Jak umask kształtuje nowe pliki
- Świeżo tworzone pliki zaczynają od bazy 666, a katalogi od 777; umask procesu wyłącza następnie bity, które zawiera — tryb efektywny = base & ~umask. Domyślny umask 022 maskuje zapis grupy i pozostałych, dając znajome 644 dla plików i 755 dla katalogów. Surowsze 077 daje 600 i 700, zostawiając wszystko prywatnym dla właściciela; nastawione na współpracę 002 daje 664 i 775, aby grupa mogła zapisywać. Sekcja umask na tej stronie wykonuje to obliczenie na żywo dla obu baz.
Dobre praktyki zarządzania uprawnieniami plików
- Najmniejsze uprawnienia, które działają
- Warto zaczynać od najściślejszego trybu i otwierać tylko to, co przestaje działać: 600 dla plików prywatnych, 644 dla czytelnych dla innych, 755 tylko tam, gdzie wykonywanie lub przechodzenie jest naprawdę potrzebne. Każdy dodatkowy bit zapisu to powierzchnia ataku.
- Domyślnie 644 dla plików w katalogach 755
- Ta para obsługuje niemal każdy katalog WWW, checkout repozytorium i scenariusz współdzielonego odczytu. Zwykłe pliki rzadko potrzebują wykonywania; katalogi zawsze go potrzebują, aby dało się do nich wejść — pomylenie tych dwóch rzeczy powoduje większość codziennych błędów uprawnień.
- Rekurencja przez find -type, nie zbiorcze -R
- chmod -R 755 oznacza każdy plik jako wykonywalny. Lepiej używać generowanych przez to narzędzie poleceń tylko dla katalogów i tylko dla plików albo wielkiego X z GNU chmod (u+rwX,go+rX), które dodaje wykonywanie tylko tam, gdzie ma ono sens.
- Nigdy 777 na niczym, do czego sięga serwer
- Zapisywalne dla świata katalogi WWW i katalogi uploadów to podręcznikowa droga do wstrzykniętych plików i podmienionych stron. Jeśli zapisywać musi kilka kont, lepsza jest wspólna grupa z 775 lub 2775 (setgid utrzymuje spójną własność grupy) niż otwieranie trybu dla całego świata.
- Klucze SSH na 600 — lub 400, gdy są już ostateczne
- OpenSSH wprost odmawia kluczy prywatnych czytelnych dla grupy lub świata. 600 to standard roboczy; 400 dodatkowo zapobiega przypadkowemu nadpisaniu klucza, którego nie planuje się już edytować. Klucze publiczne i authorized_keys mogą spokojnie mieć 644.
Najczęściej zadawane pytania o kalkulator chmod
Co oznacza chmod 777?
Czy chmod 777 jest niebezpieczny?
Czym różni się chmod 755 od 644?
Jak naprawić błąd „Permissions 0644 for 'id_rsa' are too open”?
Czym różni się chmod od chown?
Co robi chmod +x?
Jak rekurencyjnie zmienić uprawnienia wszystkich plików i katalogów?
Czy dane są dokądś wysyłane podczas korzystania z kalkulatora?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Konwerter systemów liczbowych — binary, hex, decimal i octal
Narzędzia konwersji
Konwertuj między systemami binarnym, szesnastkowym, dziesiętnym i ósemkowym (2–36) w czasie rzeczywistym. Bezpłatnie i prywatnie — w przeglądarce.
Konwerter kolorów — HEX, RGB, HSL i OKLCH
Narzędzia konwersji
Konwertuj HEX na RGB, HSL, OKLCH, OKLAB i CMYK w przeglądarce — skopiuj dowolny format jednym kliknięciem. Darmowy, bez rejestracji, kolory nigdy nie opuszczają strony.
Konwerter HEX na CMYK
Narzędzia konwersji
Konwertuj kolory HEX na CMYK w przeglądarce. Naiwne przybliżenie oparte na sRGB do podglądu druku. Bezpłatny, bez rejestracji, kolory zostają lokalnie.
Konwerter HEX na HSL
Narzędzia konwersji
Konwertuj dowolny kolor HEX na HSL w przeglądarce — obsługa 3-, 6- i 8-cyfrowego HEX z kanałem alfa. Bezpłatny, natychmiastowy, bez rejestracji, kolory nigdy nie opuszczają strony.
Konwerter HEX na OKLCH
Narzędzia konwersji
Konwertuj HEX na OKLCH pod tokeny projektowe Tailwind v4. Na żywo, percepcyjnie jednorodne wyjście z ostrzeżeniami o gamucie Display P3. Darmowy, tylko w przeglądarce.
Konwerter HEX na RGB
Narzędzia konwersji
Konwertuj dowolny kod HEX na RGB w przeglądarce — obsługa 3-, 6- i 8-cyfrowego HEX z kanałem alfa. Bezpłatny, natychmiastowy, bez rejestracji, kolory nigdy nie opuszczają strony.