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 |
Treść przygotowana i zweryfikowana przez programistów na co dzień administrujących systemami Linux; każdy ciąg uprawnień i każde polecenie pochodzą z przetestowanego silnika samego narzędzia.
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.
Kalkulator kodu uzupełnień do dwóch (U2)
Narzędzia konwersji
Wpisz liczbę całkowitą ze znakiem i otrzymaj naraz kod znak-moduł, U1, U2 oraz kod z nadmiarem, od 4 do 64 bitów. Możesz też wkleić ciąg bitów albo bajt szesnastkowy i zobaczyć wszystkie pięć odczytów obok siebie.
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 współrzędnych: lat/long, DMS, UTM i GCJ-02
Narzędzia konwersji
Przelicznik współrzędnych GPS w dowolnym formacie — stopnie dziesiętne, stopnie minuty sekundy (DMS) — na UTM, Web Mercator, GCJ-02 (AMap) i BD-09 (Baidu). Rozpoznaje lat,lng i lng,lat, odwraca GCJ-02 z błędem < 1 mm, eksport CSV.
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.