Kalkulator chmod

Oblicz uprawnienia plików w Linuksie w obie strony. Zaznacz odczyt, zapis i wykonywanie dla właściciela, grupy i pozostałych, aby dostać tryb ósemkowy i polecenie do uruchomienia — albo wklej 755, rwxr-xr-x, u+x lub cały wiersz ls -l i zobacz dokładnie, co znaczy.

Obliczane w twojej przeglądarce · nic nie jest nigdzie wysyłane · zachowanie według POSIX i GNU coreutils
Pliki
Katalogi

Wpisz 755, wklej rwxr-xr-x albo cały wiersz ls -l, albo zmień tryb za pomocą u+x lub go-w.

Typ
Odczyt4Zapis2Wykonywanie1Cyfra
Właściciel4+2+1=7
Grupa4+1=5
Pozostali4+1=5
Specjalnenic=0

Prostymi słowami

  • Właściciel może go odczytać, go zmienić i go uruchomić.
  • Grupa i pozostali mogą go odczytać i go uruchomić.
  • Ten plik można uruchomić.

Obliczane w twojej przeglądarce. Nic nie jest nigdzie wysyłane.

Co robi chmod?

chmod ustawia, kto może czytać, zapisywać i uruchamiać plik. Tryb to dwanaście bitów, zwykle zapisywanych jako trzy lub cztery cyfry ósemkowe: 755, 644, 2775.

Każda z trzech cyfr należy do klasy — właściciela pliku, grupy pliku i pozostałych — a każda cyfra jest sumą trzech liczb: odczyt to 4, zapis to 2, wykonywanie to 1. Zatem 7 to odczyt, zapis i wykonywanie; 5 to odczyt i wykonywanie; 6 to odczyt i zapis; 4 to sam odczyt. To cały system. chmod 755 script.sh mówi: właściciel 7, grupa 5, pozostali 5.

Czwarta cyfra, jeśli jest, niesie trzy bity specjalne — setuid 4, setgid 2 i bit sticky 1 — a gdy żaden nie jest ustawiony, pomija się ją. Kalkulator powyżej pokazuje od razu wszystkie cztery cyfry i arytmetykę każdej z nich, więc możesz przestać szukać liczb w tabelkach.

Tryb to dwanaście bitówchmod 755 script.sh
Przedscript.sh
Specjalnes4s2t10
Właścicielr4w2x16
Grupar4w2x14
Pozostalir4w2x14
-rw-r--r--0644
Poscript.sh
Specjalnes4s2t10
Właścicielr4w2x17
Grupar4w2x15
Pozostalir4w2x15
-rwxr-xr-x0755
chmod 755 ustawia naraz każdy bit trybu: z 644 włącza trzy bity wykonywania, po jednym dla każdej klasy. Trzy bity każdej klasy sumują się w jedną cyfrę ósemkową.
Kalkulator chmod z trybem 755 jako siatką uprawnień, jego cyframi ósemkowymi, zapisem symbolicznym i poleceniem chmodKalkulator chmod z trybem 755 jako siatką uprawnień, jego cyframi ósemkowymi, zapisem symbolicznym i poleceniem chmodZaznacz lub wpiszSiatka i pola to to samo: zmień jedno, a reszta pójdzie za nim.Każda cyfra4 + 2 + 1 dla każdej klasy, więc liczby nie trzeba już zapamiętywać.Wklej cokolwiek755, rwxr-xr-x, u+x albo cały wiersz ls -l — odczyta wszystkie cztery.PolecenieZbudowane z wybranego trybu, z właściwą liczbą cyfr i formą rekurencyjną, która nie spłaszcza twoich plików.Co to znaczyProste zdanie i ostrzeżenia, na które tryb zasługuje.
Tryb 755 rozłożony na części: siatka, arytmetyka każdej cyfry, zapis symboliczny i polecenie do uruchomienia. Wybierz numer, aby zobaczyć, co pokazuje każda część.

Jak działają uprawnienia plików w Linuksie

Każdy plik ma właściciela, grupę i tryb. Tryb daje trzy uprawnienia każdej z trzech klas — dziewięć bitów — a zaraz po znaku typu pliku ls -l wypisuje dokładnie te dziewięć znaków.

-rw-r--r-- to plik (-), który właściciel może czytać i zapisywać, a grupa i pozostali tylko czytać: tryb 644. drwxr-xr-x to katalog (d) z trybem 755. Pierwszy znak to typ: - plik, d katalog, l dowiązanie symboliczne, a b, c, p lub s dla rodzajów specjalnych. Wklej dowolny z tych wierszy do kalkulatora, a odczyta z niego tryb i typ.

W katalogu te trzy uprawnienia znaczą co innego niż w pliku. Odczyt pozwala wyświetlić znajdujące się w nim nazwy. Wykonywanie pozwala wejść do niego i dotrzeć do plików, których nazwy już znasz. Zapis razem z wykonywaniem pozwala tworzyć i usuwać wpisy — dlatego usunięcie pliku zależy od uprawnień katalogu, a nie pliku. Katalog z odczytem, ale bez wykonywania, to katalog, którego zawartość możesz wyświetlić, lecz którego nie otworzysz.

Co ls -l wypisuje najpierwls -l notes.txt
UprawnienieW plikuW katalogu
r4Odczytać jego zawartośćWyświetlić znajdujące się w nim nazwy
w2Zmienić jego zawartośćTworzyć, zmieniać nazwy i usuwać wpisy
x1Uruchomić go jako programWejść do niego i otworzyć jego zawartość

Inne pierwsze znaki: d katalog, l dowiązanie symboliczne, a b, c, p lub s dla rodzajów specjalnych.

Co oznacza chmod 755?

755 znaczy, że właściciel może plik czytać, zapisywać i uruchamiać, a pozostali mogą go czytać i uruchamiać, ale nie zmieniać. To zwykły tryb katalogu i programu.

Cyfra po cyfrze: 7 = 4 + 2 + 1, więc właściciel czyta, zapisuje i wykonuje. 5 = 4 + 1 dla grupy i jeszcze raz dla pozostałych, więc obie klasy czytają i wykonują. Rozpisane to rwxr-xr-x, a jako polecenie symboliczne chmod u=rwx,g=rx,o=rx.

Używaj go dla katalogów, do których ludzie mają móc wchodzić, oraz dla skryptów i programów, które mają móc uruchamiać. Nie używaj go dla niczego tajnego: ostatnia 5 oznacza, że każde konto na maszynie może odczytać plik. Dla plików serwera WWW dokumentacja samego WordPressa zaleca 755 lub 750 dla katalogów i 644 lub 640 dla plików.

755, cyfra po cyfrzechmod 755
7=r4w2x14+2+1rwxWłaściciel
5=r4-2x14+1r-xGrupa
5=r4-2x14+1r-xPozostali
Używaj dla
  • Katalogów, do których ludzie muszą wchodzić
  • Skryptów i programów
Nie dla
  • Niczego tajnego: każdy może to odczytać

Dokumentacja samego WordPressa: katalogi 755 lub 750, pliki 644 lub 640.

chmod 644 czy 755: którego potrzebuję?

644 dla plików, 755 dla katalogów i wszystkiego, co ma się uruchamiać. Jedyna różnica to bit wykonywania.

644 to rw-r--r--: właściciel może to zmienić, każdy może to czytać, nikt nie może tego uruchomić. To właściwy tryb dla HTML, CSS, obrazów, konfiguracji i plików źródłowych. 755 to rwxr-xr-x: to samo, plus bit wykonywania dla wszystkich trzech klas. Katalog go potrzebuje, bo inaczej nikt nie wejdzie do środka, a skrypt go potrzebuje, bo inaczej powłoka odmówi jego uruchomienia.

Błąd, którego warto unikać, to chmod -R 755 na całej stronie, które sprawia, że każdy obraz i każdy plik .php staje się wykonywalny. Dwa polecenia find, które pisze kalkulator, nadają katalogom i plikom różne tryby jednym przebiegiem, z trybami, które naprawdę wybrałeś, a nie z parą z jakiegoś bloga.

Jedyna różnica to bit wykonywania644 · 755
644
OdczytZapisWykonywanie
Właścicielrw-6
Grupar--4
Pozostalir--4

Pliki: HTML, CSS, obrazy, konfiguracja, kod źródłowy

755
OdczytZapisWykonywanie
Właścicielrwx7
Grupar-x5
Pozostalir-x5

Katalogi, skrypty i programy

W złą stronę
  • 755Plik z trybem 755 można uruchomić, tak jak każdy obraz i plik .php po chmod -R 755.
  • 644Katalog z trybem 644 pokazuje swoje nazwy, ale nikt nie może do niego wejść ani otworzyć niczego w środku.

Co robi chmod 777 i czy jest bezpieczny?

777 pozwala każdemu kontu na maszynie czytać, zmieniać i uruchamiać plik. Prawie nigdy nie jest właściwą odpowiedzią, a dokumentacja samego WordPressa mówi, że żaden katalog nie powinien go dostać.

Zapis dla wszystkich oznacza, że każdy, kto może się zalogować — albo cokolwiek działające jako dowolny użytkownik, także przejęty proces — może podmienić zawartość pliku. Jeśli to skrypt uruchamiany przez serwer WWW, oddajesz serwer. Strona uprawnień WordPressa zaleca 755 lub 750 dla katalogów i 644 lub 640 dla plików oraz mówi, że żaden katalog nie powinien mieć 777, nawet katalog wysyłania plików.

Gdy aplikacja WWW nie może zapisywać w katalogu, rozwiązaniem jest właściciel lub grupa, a nie tryb: zmień właściciela katalogu poleceniem chown na użytkownika, jako którego działa serwer WWW, albo dodaj tego użytkownika do wspólnej grupy i użyj 775. Kalkulator ostrzega zawsze, gdy tryb pozwala wszystkim zapisywać: w pliku zawsze, a w katalogu, chyba że bit sticky nie pozwala usuwać cudzych plików.

Kto może zapisywać przy 777chmod 777
777Każdy może to zmienić
OdczytZapisWykonywanie
Właścicielrwx7
Gruparwx7
Pozostalirwx7
  1. 1Dowolne konto albo proces działający jako ono
  2. 2podmienia skrypt
  3. 3a serwer WWW go uruchamia
O co prosi dokumentacja

WordPress · Katalogi 755 lub 750, pliki 644 lub 640.

„No directories should ever be given 777, even upload directories.”

Rozwiązaniem jest właściciel lub grupa, a nie tryb: zmień właściciela poleceniem chown na użytkownika serwera WWW albo użyj wspólnej grupy i 775.

Dlaczego SSH mówi, że uprawnienia mojego klucza są zbyt otwarte?

OpenSSH odmawia użycia klucza prywatnego, który może odczytać ktokolwiek poza jego właścicielem. Ustaw klucz na 600, a katalog .ssh na 700.

Dokładny komunikat to Permissions 0644 for '<path>' are too open., a po nim It is required that your private key files are NOT accessible by others. Test za nim jest prosty: jeśli plik należy do ciebie i ustawiony jest jakikolwiek bit grupy lub pozostałych, klucz zostaje odrzucony. Dlatego 640 też zawodzi, i dlatego odpowiedzią jest 600, a nie „trochę mniej niż 644”.

chmod 600 ~/.ssh/id_ed25519 i chmod 700 ~/.ssh to naprawiają. Klucz publiczny może być czytelny dla każdego — liczy się tu tylko klucz prywatny i katalog. Wybierz Klucz SSH w popularnych trybach powyżej, a kalkulator napisze oba polecenia za ciebie.

Co wypisuje ssh
$ssh you@server.example
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/you/.ssh/id_ed25519' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Co sprawdza OpenSSH
Pliki i tryby, które przechodzą
  • ~/.ssh/700drwx------Katalog
  • id_ed25519600-rw-------Twój klucz prywatny
  • id_ed25519.pub644-rw-r--r--Klucz publiczny: każdy może go czytać
  • config600-rw-------Bez zapisu dla innych
Test, bit po bicie
  • 644rw-r--r--Odrzucony
  • 640rw-r-----Odrzucony
  • 600rw-------Użyty
  • 400r--------Użyty

Grupa i pozostali: wszystko musi być wyłączone

Tryb symboliczny: u, g, o, a z +, - i =

chmod u+x script.sh dodaje jeden bit, nie ruszając reszty. + dodaje, - zabiera, = ustawia klasę dokładnie na to, co wypiszesz.

Gramatyka to [kto][operator][uprawnienia], z przecinkami między klauzulami: u właściciel, g grupa, o pozostali, a wszystkie trzy. Zatem go-w odbiera zapis grupie i pozostałym, a=rwx ustawia wszystko, a u=rw,go=r to inny sposób zapisu 644. Wklej dowolne z nich do kalkulatora powyżej, a pokaże, które bity się zmieniają, przed i po.

Dwie części gramatyki łatwo pomylić, a kalkulator uwzględnia obie. X — wielkie X — dodaje bit wykonywania tylko katalogowi albo plikowi, który już gdzieś jest wykonywalny, dzięki czemu chmod -R u=rwX,go=rX jest bezpieczne w drzewie z mieszaną zawartością. A klauzula bez żadnej klasy, taka jak +x, to nie to samo co a+x: bity ustawione w twoim umask zostają nietknięte, więc przy zwykłym umask 022 chmod +rwx na pliku 644 daje 755, a chmod a+rwx daje 777.

kto · operator · uprawnieniachmod u+x script.sh
  • uwłaściciel
  • ggrupa
  • opozostali
  • awszystkie trzy
  • +dodaj
  • -zabierz
  • =ustaw dokładnie
  • rodczyt
  • wzapis
  • xwykonywanie
  • Xwykonywanie, tylko w katalogach i plikach, które już da się uruchomić
  • ssetuid lub setgid
  • tsticky
Przykłady krok po kroku
ZmianaPrzedPo
u+x644rw-r--r--744rwxr--r--Wykonywanie dla właściciela, nic więcej nie ruszone.
go-w775rwxrwxr-x755rwxr-xr-xZapis odebrany grupie i pozostałym.
a=r755rwxr-xr-x444r--r--r--Wszystkie trzy ustawione na sam odczyt i nic więcej.
u=rw,go=r777rwxrwxrwx644rw-r--r--Trzy klauzule: inny sposób zapisu 644.
+rwx644rw-r--r--755rwxr-xr-xBez klasy: bity z umask (022) nie są ustawiane, więc grupa i pozostali nie dostają zapisu.
a+rwx644rw-r--r--777rwxrwxrwxZ a umask się nie liczy: ustawione jest wszystko.
a+Xw katalogu644rw-r--r--755rwxr-xr-xWielkie X w katalogu: dodane wykonywanie, bo to katalog.
a+Xw pliku644rw-r--r--644rw-r--r--Wielkie X w pliku, którego nikt nie może uruchomić: nic nie zostaje dodane.

Setuid, setgid i bit sticky

Czwarta cyfra. W pliku setuid i setgid zmieniają konto, jako które działa program. W katalogu setgid decyduje o grupie nowych plików, a bit sticky o tym, kto może je usuwać.

Setuid (4000) na pliku wykonywalnym sprawia, że działa on jako właściciel pliku, a nie jako ty — passwd jest zainstalowany z setuid, aby przy zmianie hasła mógł działać z prawami roota. Setgid (2000) robi to samo dla grupy. W katalogu setgid robi coś innego i znacznie bardziej użytecznego: nowe pliki w środku dziedziczą grupę katalogu zamiast grupy twórcy, dzięki czemu wspólny katalog projektu pozostaje wspólny. Linux nie dokumentuje żadnego znaczenia bitu setuid w katalogu; w macOS i BSD może on sprawić, że nowe pliki dostaną właściciela katalogu, jeśli system plików zamontowano z tą opcją.

Bit sticky (1000) w katalogu powstrzymuje ludzi przed usuwaniem swoich plików nawzajem: tylko właściciel pliku, właściciel katalogu lub root może usunąć wpis albo zmienić jego nazwę. /tmp ma tryb 1777 właśnie z tego powodu — każdy może w nim zapisywać, nikt nie może usuwać cudzej pracy. W zwykłym pliku macOS i BSD pomijają bit sticky, a podręcznik GNU nadaje mu tam znaczenie tylko w niektórych starszych systemach. Jedna pułapka: chmod 755 somedir — albo chmod 0755 somedir — nie czyści bitu setgid, który już jest w katalogu, bo GNU chmod celowo go zachowuje przy każdym trybie numerycznym krótszym niż pięć cyfr — POSIX wymaga czyszczenia tych bitów przez formę ósemkową tylko w zwykłym pliku. Użyj g-s albo pięciocyfrowego chmod 00755, a kalkulator napisze formę pięciocyfrową za ciebie, ilekroć będzie potrzebna.

Setuid4755

Program działa jako właściciel pliku, a nie jako ty.

Linux-rwsr-xr-x root root /usr/bin/passwd

passwd jest zainstalowany w ten sposób, więc przy zmianie hasła działa z prawami roota.

W katalogu: bez udokumentowanego znaczenia w Linuksie. W macOS i BSD nowe pliki dostają właściciela katalogu, jeśli system plików zamontowano z tą opcją.

Setgid2775

W katalogu nowe pliki dostają grupę katalogu zamiast twojej.

Linuxdrwxrwsr-x you devs project/

Wspólny katalog projektu pozostaje wspólny: każdy nowy plik należy do zespołu.

W macOS i BSD nowy plik zawsze dostaje grupę swojego katalogu, z tym bitem lub bez niego.

Sticky1777

W katalogu tylko właściciel pliku, właściciel katalogu lub root może usunąć plik albo zmienić jego nazwę.

macOSdrwxrwxrwt root wheel /private/tmp

Każdy może zapisywać w /tmp, a nikt nie może usuwać cudzych plików.

W pliku bit sticky jest pomijany w macOS i BSD.

Pułapka GNU: chmod 755 na katalogu zostawia jego bit setgid włączony.

$chmod 755 project → drwxr-sr-xWyczyść go pięcioma cyframi albo literami:$chmod 00755 project → drwxr-xr-x$chmod g-s project → drwxr-xr-x

umask: co dostają nowe pliki

Nowy plik zaczyna od 666, a nowy katalog od 777, i każdy bit ustawiony w umask zostaje wyłączony. Zwykły umask 022 daje 644 i 755.

umask to nie odejmowanie, tylko maska: każdy bit ustawiony w umask zostaje wyłączony w trybie, o który poprosił program. Przy umask 077 nowy plik ma 600, a nowy katalog 700 — domyślnie prywatne. Przy umask 002 dostajesz 664 i 775: grupa też może zapisywać.

umask nigdy nie sprawi, że plik stanie się wykonywalny, bo tryb bazowy pliku nie ma żadnych bitów wykonywania — tylko katalogi zaczynają od 777. Dlatego świeżo utworzonego skryptu nie da się uruchomić, dopóki nie powiesz chmod +x. Przełącz się na kartę umask powyżej, aby zobaczyć, co daje dowolny umask, i otwórz każdy wynik od razu w kalkulatorze.

Wyłączane bit po bicieumask 022
Nowy plik
Zaczyna odrw-rw-rw-666
umask····w··w·022
Dostajerw-r--r--644
Nowy katalog
Zaczyna odrwxrwxrwx777
umask····w··w·022
Dostajerwxr-xr-x755
Popularne wartości umask
umaskNowy plikNowy katalog
022644 rw-r--r--755 rwxr-xr-x
002664 rw-rw-r--775 rwxrwxr-x
027640 rw-r-----750 rwxr-x---
077600 rw-------700 rwx------

Żaden umask nie sprawi, że plik stanie się wykonywalny: nowy plik zaczyna bez bitu wykonywania do zachowania.

Jak zmienić katalog i wszystko, co jest w środku

chmod -R 755 folder nadaje katalogom i plikom ten sam tryb, przez co każdy plik staje się wykonywalny. Dwa polecenia find nadają każdemu rodzajowi tryb, jaki powinien mieć.

find folder -type d -exec chmod 755 {} + i find folder -type f -exec chmod 644 {} + przechodzą po drzewie po jednym razie i ustawiają katalogi i pliki osobno. Kalkulator pisze oba z wybranymi przez ciebie trybami, a nie ze stałą parą. Końcowy + grupuje pliki w jak najmniej uruchomień chmod, co ma znaczenie w dużym drzewie.

Drugi bezpieczny sposób to wielkie X: chmod -R u=rwX,go=rX folder dodaje wykonywanie tylko katalogom i plikom, które już da się uruchomić. A po każdej zmianie rekurencyjnej stat -c '%a %n' folder/* odczytuje wszystko poziom niżej.

Jeden katalog, cztery sposoby
KatalogTeraz1234
site/755755644755755
index.html644755644644644
app.php644755644644644
deploy.sh755755644644755
img/755755644755755
logo.png644755644644644
  1. 1$chmod -R 755 siteKażdy plik można uruchomić
  2. 2$chmod -R 644 siteDo żadnego katalogu nie da się wejść
  3. 3$find site -type d -exec chmod 755 {} +$find site -type f -exec chmod 644 {} +Każdy rodzaj dostaje własny trybSkrypt też traci x
  4. 4$chmod -R u=rwX,go=rX siteKażdy rodzaj dostaje własny trybPlik, który już dało się uruchomić, zachowuje x

Czy chmod istnieje w Windows?

Nie to samo. Windows używa list kontroli dostępu, a icacls jest najbliższym poleceniem: icacls file /grant Users:(RX).

Uprawnienia NTFS to lista wpisów, z których każdy nazywa użytkownika lub grupę i ich prawa, więc nie ma jednej trzycyfrowej liczby do obliczenia. Najbliższe tłumaczenie jest dla klasy: odczyt staje się R, odczyt i wykonywanie RX, zapis W, a samo wykonywanie staje się osobnym prawem X; cyfra, która potrzebuje dwóch praw, wymienia oba — 7 to (RX,W). Żadna cyfra nie odpowiada Modify (M), które pozwala też usuwać, ani Full control (F), które pozwala też zmieniać uprawnienia i przejmować na własność. Kalkulator pokazuje to odwzorowanie obok twojego trybu i jest to najbliższe dopasowanie, a nie odpowiednik.

W Podsystemie Windows dla systemu Linux (WSL) chmod działa prawidłowo w systemie plików Linuksa. Na dysku Windows zamontowanym pod /mnt/c działa tylko wtedy, gdy dysk zamontowano z opcją metadata. Bez niej tryb jest wyliczany z twoich praw w Windows, taki sam dla właściciela, grupy i pozostałych, a chmod potrafi niewiele więcej niż ustawić atrybut tylko do odczytu — więc klucz trzymany po stronie Windows może wyglądać na zbyt otwarty, a chmod 600 tam nie pomoże.

Każda cyfra chmod i jej najbliższe prawo icaclsicacls
CyfraLiteryNajbliższe prawo
7rwx(RX,W)Odczyt, zapis i wykonywanie
6rw-(R,W)Odczyt i zapis
5r-x(RX)Odczyt i wykonywanie
4r--(R)Odczyt
3-wx(W,X)Zapis i wykonywanie
2-w-(W)Zapis
1--x(X)Wykonywanie
0---—Brak dostępu

Najbliższe dopasowanie, a nie odpowiednik: Windows trzyma listę wpisów, z których każdy nazywa, kto dostaje które prawa. Żadna cyfra nie odpowiada Modify (M), które pozwala też usuwać, ani Full control (F), które pozwala też zmieniać uprawnienia (WDAC) i przejmować na własność (WO). W obu systemach właściciel zawsze może zmienić uprawnienia pliku.

W WSL
  • /homeW systemie plików Linuksa: chmod działa jak w każdym Linuksie.
  • /mnt/cNa /mnt/c bez opcji metadata: tryby pochodzą z praw Windows, a chmod zmienia prawie nic.
  • /mnt/c · metadataZ metadata: chmod działa, ale nigdy ponad to, na co pozwala ci Windows.

Jak sprawdzić uprawnienia pliku

ls -l pokazuje je jako litery, a stat jako liczbę. Wklej jedno lub drugie do kalkulatora, a odczyta tryb z powrotem.

ls -l file wypisuje -rw-r--r-- 1 you staff 4096 25 Oct 09:26 file, a kalkulator przyjmuje cały wiersz — nie musisz wybierać z niego trybu. stat -c '%a %n' file wypisuje 644 file w Linuksie; w macOS to samo to stat -f '%Lp %N' file. Dla całego katalogu naraz GNU find . -maxdepth 1 -printf '%m %p\n' wypisuje każdy tryb jako liczbę (find z macOS nie ma -printf).

Znak + na końcu napisu uprawnień oznacza, że jest coś więcej niż dziewięć bitów: w Linuksie to ACL POSIX, który pokazuje getfacl, a te dodatkowe wpisy w ogóle nie są częścią trybu. W macOS @ oznacza atrybuty rozszerzone, a + rozszerzone informacje o zabezpieczeniach. W GNU ls kropka (.) oznacza kontekst bezpieczeństwa, na przykład SELinuksa. Kalkulator przyjmuje wszystkie trzy znaczniki i mówi ci, że tryb to tylko część historii.

Wiersz ls -l, pole po poluls -l notes.txt
-Typrw-r--r--Uprawnienia+Znacznik1DowiązaniayouWłaścicielstaffGrupa4096Rozmiar25 Oct 09:26Zmieniononotes.txtNazwa
Tryb jako liczba
  • Linux$stat -c '%a %n' notes.txt644 notes.txt
  • macOS$stat -f '%Lp %N' notes.txt644 notes.txt
Znak po trybie
  • -rw-r--r--+Linux: ACL POSIX (wypisze go getfacl). macOS: rozszerzone informacje o zabezpieczeniach, takie jak ACL.
  • -rw-r--r--@macOS: atrybuty rozszerzone.
  • -rw-r--r--.GNU ls: kontekst bezpieczeństwa, na przykład SELinuksa, i nic więcej.
  • -rw-r--r-- Nic więcej: te dziewięć bitów to cała historia.

Kalkulator chmod: pytania i odpowiedzi

Co oznacza chmod 755?

Daje właścicielowi odczyt, zapis i wykonywanie, a pozostałym odczyt i wykonywanie. Rozpisane to rwxr-xr-x. Cyfry to sumy: 7 to 4 + 2 + 1, a 5 to 4 + 1. Używaj go dla katalogów, które potrzebują bitu wykonywania, zanim ktokolwiek do nich wejdzie, oraz dla skryptów i programów. Nigdy dla pliku, który ma pozostać prywatny.

Jaka jest różnica między chmod 644 a 755?

Jeden bit na klasę: bit wykonywania. 644 to rw-r--r--, właściwy dla dokumentów, obrazów, konfiguracji i plików źródłowych. 755 to rwxr-xr-x, właściwy dla katalogów i wszystkiego, co ma się uruchamiać. Nadanie plikom 755 czyni każdy z nich wykonywalnym, dlatego rekurencyjne chmod -R 755 na całej stronie to błąd; ustawiaj katalogi i pliki osobno.

Co robi chmod 777 i czy jest bezpieczny?

Pozwala każdemu kontu na maszynie czytać, zmieniać i uruchamiać plik. Prawie nigdy nie jest potrzebny i stanowi realne ryzyko na serwerze współdzielonym lub dostępnym z internetu: wszystko, co może zapisać skrypt uruchamiany przez serwer, może przejąć serwer. Dokumentacja samego WordPressa prosi o 755 lub 750 i 644 lub 640 oraz mówi, że żaden katalog nie powinien mieć 777. Gdy aplikacja nie może gdzieś zapisywać, zmień właściciela lub grupę, a nie tryb.

Co robi chmod +x?

Dodaje bit wykonywania, aby plik dało się uruchomić. Zauważ, że +x bez klasy nie jest dokładnie a+x: klauzula bez klasy zostawia w spokoju bity z twojego umask, więc przy zwykłym umask 022 właściciel, grupa i pozostali dostają wykonywanie, a ostrzejszy umask, taki jak 077, daje je tylko właścicielowi. Napisz chmod a+x lub chmod u+x, gdy chcesz mieć pewność, które z nich.

Co oznacza chmod 600 i dlaczego chce go SSH?

600 to rw-------: tylko właściciel może plik czytać lub zmieniać. OpenSSH odrzuca klucz prywatny, który może odczytać jakiekolwiek inne konto, z komunikatem Permissions 0644 for '<path>' are too open. Sprawdzenie jest ścisłe — jeśli plik należy do ciebie i ustawiony jest jakikolwiek bit grupy lub pozostałych, klucz zostaje odrzucony, więc 640 też zawodzi. Użyj chmod 600 na kluczu i chmod 700 na ~/.ssh.

Co oznacza czwarta cyfra w chmod?

Niesie trzy bity specjalne: setuid 4, setgid 2 i bit sticky 1. chmod 2775 folder ustawia setgid, aby nowe pliki w środku dostawały grupę katalogu. chmod 1777 folder ustawia bit sticky, aby ludzie nie usuwali nawzajem swoich plików, czego używa /tmp. Cyfrę pomija się, gdy żaden z nich nie jest ustawiony.

Dlaczego chmod 755 nie usunął bitu setgid z mojego katalogu?

Bo GNU chmod zachowuje setuid i setgid w katalogu, ilekroć tryb numeryczny ma mniej niż pięć cyfr — łącznie z 0755. To celowe i zgodne ze standardem: POSIX wymaga czyszczenia tych bitów przez formę ósemkową tylko w zwykłym pliku. Użyj formy symbolicznej chmod g-s folder albo zapisz zera wiodące jako chmod 00755 folder. Ten kalkulator zapisuje formę pięciocyfrową automatycznie, gdy twoja zmiana jej wymaga.

Jaka jest różnica między chmod a chown?

chmod ustawia, co mogą robić właściciel, grupa i pozostali. chown ustawia, kim naprawdę są właściciel i grupa. Odpowiadają na dwie połowy tego samego pytania, a „permission denied” na serwerze WWW to często problem własności, a nie trybu — pliki należą do złego użytkownika i żaden tryb poniżej 777 tego nie załata.

Czy mogę wkleić do tego kalkulatora wiersz ls -l?

Tak — cały wiersz, nie tylko tryb. -rw-r--r-- 1 you staff 4096 25 Oct 09:26 notes.txt zostanie odczytany jako tryb 644 pliku, a drwxrwsr-x jako 2775 katalogu. Znacznik ACL +, kropka kontekstu bezpieczeństwa i @ z macOS są rozumiane. Możesz też wkleić wyrażenie z operatorem, takie jak u+x lub go-w, i zobaczyć, które bity zmienia.

Co oznacza + lub @ po uprawnieniach?

Mówią, że dziewięć bitów to nie cała historia. W Linuksie + oznacza, że plik ma ACL POSIX z wpisami poza właścicielem, grupą i pozostałymi — pokazuje je getfacl i nie są częścią trybu. W GNU ls kropka oznacza kontekst bezpieczeństwa, na przykład SELinuksa. W macOS @ oznacza atrybuty rozszerzone, a + rozszerzone informacje o zabezpieczeniach. Jeśli uprawnienia zachowują się dziwnie mimo rozsądnego trybu, szukaj tam.

Czy istnieje odpowiednik chmod w Windows?

Windows używa list kontroli dostępu zamiast trybu, więc nie ma dokładnego odpowiednika. icacls file /grant Users:(RX) to najbliższe polecenie, a kalkulator pokazuje najbliższe prawa dla twojego trybu. W WSL chmod działa normalnie w systemie plików Linuksa, ale na dysku Windows pod /mnt/c prawie nic nie robi, chyba że dysk zamontowano z opcją metadata.

Co daje mi umask 022?

644 dla nowego pliku i 755 dla nowego katalogu. Nowy plik zaczyna od 666, a katalog od 777, i każdy bit ustawiony w umask zostaje wyłączony. Ponieważ plik nigdy nie zaczyna z bitem wykonywania, żaden umask nie sprawi, że będzie wykonywalny — to zawsze późniejsze chmod +x. Użyj karty umask powyżej, aby wypróbować dowolną wartość i otworzyć każdy wynik w kalkulatorze.

Czegoś brakuje?Zaproponuj funkcję lub nowe narzędzie