Kalkulator chmod

Uniksowe uprawnienia plików ósemkowo i jako rwx, w obie strony.

O tym narzędziu

Zaznacz odczyt, zapis i wykonywanie dla właściciela, grupy i pozostałych, aby uzyskać tryb ósemkowy i polecenie chmod, albo wpisz tryb, np. 755 lub rwxr-xr-x, aby zobaczyć, na co pozwala. Obsługuje setuid, setgid i sticky bit.

Jak z tego korzystać

  1. Wpisz tryb, np. 755, 0644 lub rwxr-xr-x, albo wklej pierwszą kolumnę z ls -l.
  2. Albo zaznacz odczyt, zapis i wykonywanie dla właściciela, grupy i wszystkich pozostałych.
  3. Dodaj setuid, setgid lub sticky bit, jeśli ich potrzebujesz.
  4. Wpisz nazwę pliku i skopiuj polecenie chmod.

Pytania

Co oznacza chmod 755?
Właściciel może czytać, zapisywać i wykonywać; grupa i wszyscy pozostali mogą czytać i wykonywać. To typowe uprawnienia dla skryptów, programów i folderów.
Czym różni się 644 od 755?
644 (rw-r--r--) to uprawnienia dla zwykłych plików: tylko właściciel może je zmieniać i nikt nie może ich uruchamiać. 755 dodaje prawo wykonywania, którego programy potrzebują, by się uruchomić, a foldery – by można było je otworzyć.
Dlaczego mój klucz SSH wymaga 600?
SSH odrzuca klucze prywatne, które mogą czytać inni użytkownicy. 600 oznacza, że tylko Ty możesz czytać i zapisywać plik, a dokładnie to SSH sprawdza.
Czy chmod 777 to kiedykolwiek dobry pomysł?
Rzadko. Pozwala każdemu użytkownikowi na maszynie zmienić lub podmienić plik. Gdy coś działa tylko z 777, prawdziwym rozwiązaniem jest zwykle właściwy właściciel (chown) lub grupa, a nie szersze uprawnienia.
Co oznaczają litery s i t?
s na pozycji właściciela lub grupy to setuid lub setgid: program działa z uprawnieniami właściciela lub grupy pliku, a nowe pliki w folderze dziedziczą jego grupę. t to sticky bit: we współdzielonym folderze, takim jak /tmp, użytkownicy mogą usuwać tylko własne pliki.
Dlaczego chmod zgłasza „Operation not permitted”?
Tylko właściciel pliku lub root może zmienić jego tryb, więc użyj sudo albo najpierw popraw właściciela przez chown. Na FAT, exFAT i wielu udziałach sieciowych uprawnienia w ogóle nie są przechowywane i wynikają z opcji montowania. W Linuksie plik oznaczony jako niezmienny przez chattr +i też odrzuca chmod, dopóki flaga nie zostanie usunięta.
Czy Git zachowuje uprawnienia plików?
Tylko bit wykonania. Git zapisuje plik jako 100644 lub 100755 i ignoruje wszystko inne, w tym uprawnienia grupy i pozostałych. Aby oznaczyć skrypt jako wykonywalny z poziomu Windows, uruchom git update-index --chmod=+x script.sh. Jeśli Git zgłasza zmiany trybu, których nikt celowo nie wprowadzał, np. na dysku współdzielonym, ustaw core.fileMode na false dla tego repozytorium.
Czym różni się chmod od chown?
chmod zmienia to, co właściciel, grupa i pozostali mogą robić z plikiem. chown zmienia to, kto jest właścicielem i jaka jest grupa, jak w sudo chown www-data:www-data uploads. Gdy usługa nie może gdzieś zapisywać, przekazanie folderu użytkownikowi lub grupie usługi jest bezpieczniejsze niż poszerzanie uprawnień dla wszystkich.

Jak działają liczby w chmod?

Każde uprawnienie ma wartość: odczyt to 4, zapis 2, a wykonanie 1. Dodaj je, aby dostać jedną cyfrę, więc 7 oznacza rwx, 6 – rw-, a 5 – r-x. Tryb ma trzy cyfry: dla właściciela, grupy i wszystkich pozostałych, w tej kolejności. Dlatego chmod 640 daje właścicielowi odczyt i zapis, grupie tylko odczyt, a pozostałym nic. Konwerter systemów liczbowych pokazuje każdą cyfrę jako trzy bity.

Czwarta cyfra z przodu ustawia bity specjalne: 4 dla setuid, 2 dla setgid i 1 dla sticky bitu, więc chmod 2775 to 775 plus setgid. W pierwszej kolumnie ls -l pierwszy znak to typ pliku (d dla folderu, l dla dowiązania symbolicznego, - dla zwykłego pliku), a po nim następuje dziewięć liter uprawnień. Wielka litera S lub T oznacza, że bit specjalny jest ustawiony, ale prawo wykonania nie, co zwykle jest pomyłką.

chmod: liczby czy litery (tryb symboliczny)?

Liczby zawsze ustawiają wszystkie dziewięć bitów naraz: chmod 644 file zastępuje to, co było wcześniej. Litery mogą zmienić jedną rzecz i zachować resztę. chmod u+x deploy.sh dodaje prawo wykonania dla właściciela, chmod go-w file odbiera prawo zapisu grupie i pozostałym, a = ustawia dokładną listę, jak w chmod o= secret.txt. Każdy wynik jest tu pokazany na oba sposoby, np. chmod 755 file i chmod u=rwx,g=rx,o=rx file.

Gdy pominiesz u, g, o lub a, chmod stosuje zmianę do wszystkich, ale pomija bity zablokowane przez Twoją umask. Umask decyduje też o trybie nowych plików: przy popularnej umask 022 nowe pliki dostają 644, a nowe foldery 755. Uruchom umask, aby zobaczyć swoją. Jeśli członkowie zespołu ciągle tworzą pliki, których grupa nie może edytować, rozwiązaniem jest zwykle umask 002, a nie późniejsze chmod -R.

Jak nadać różne uprawnienia chmod folderom i plikom?

chmod -R 755 dir sprawia, że każdy plik staje się wykonywalny, a rzadko tego chcesz. Użyj zamiast tego wielkiego X: chmod -R u=rwX,go=rX dir nadaje prawo wykonania tylko folderom i plikom, które już były wykonywalne. Aby uzyskać dokładnie 755 dla folderów i 644 dla plików, wykonaj dwa przebiegi: find dir -type d -print0 | xargs -0 chmod 755, a potem to samo z -type f i 644.

„Permission denied” przy pliku, który wygląda na czytelny, zwykle wynika z folderu powyżej. Aby otworzyć ścieżkę, potrzebujesz prawa wykonania dla każdego folderu po drodze, a prawa odczytu, aby wyświetlić zawartość folderu. Plik 644 w folderze 700 pozostaje prywatny dla właściciela. W Linuksie namei -l /path/to/file wypisuje tryb każdej części ścieżki, więc wypatrzysz folder, który blokuje dostęp.

Najczęstsze uprawnienia chmod

Tryby, które spotkasz najczęściej: na co każdy z nich pozwala i gdzie się go używa.

TrybrwxKto może coTypowe zastosowanie
chmod 755rwxr-xr-xWłaściciel ma prawa: odczyt, zapis i wykonywanie. Grupa ma prawa: odczyt i wykonywanie. Pozostali mają prawa: odczyt i wykonywanie.Skrypty, programy i foldery, które inni mogą otwierać
chmod 644rw-r--r--Właściciel ma prawa: odczyt i zapis. Grupa ma prawa: odczyt. Pozostali mają prawa: odczyt.Zwykłe pliki: każdy może je czytać, edytować możesz tylko Ty
chmod 600rw-------Właściciel ma prawa: odczyt i zapis. Grupa nie ma żadnych praw. Pozostali nie mają żadnych praw.Pliki prywatne, takie jak klucze SSH i pliki .env
chmod 700rwx------Właściciel ma prawa: odczyt, zapis i wykonywanie. Grupa nie ma żadnych praw. Pozostali nie mają żadnych praw.Prywatne foldery i skrypty, które tylko Ty możesz uruchamiać
chmod 775rwxrwxr-xWłaściciel ma prawa: odczyt, zapis i wykonywanie. Grupa ma prawa: odczyt, zapis i wykonywanie. Pozostali mają prawa: odczyt i wykonywanie.Foldery, w których grupa pracuje wspólnie
chmod 664rw-rw-r--Właściciel ma prawa: odczyt i zapis. Grupa ma prawa: odczyt i zapis. Pozostali mają prawa: odczyt.Pliki edytowane wspólnie przez grupę
chmod 750rwxr-x---Właściciel ma prawa: odczyt, zapis i wykonywanie. Grupa ma prawa: odczyt i wykonywanie. Pozostali nie mają żadnych praw.Programy i foldery tylko dla Ciebie i Twojej grupy
chmod 640rw-r-----Właściciel ma prawa: odczyt i zapis. Grupa ma prawa: odczyt. Pozostali nie mają żadnych praw.Pliki konfiguracyjne, które może czytać grupa usługi
chmod 444r--r--r--Właściciel ma prawa: odczyt. Grupa ma prawa: odczyt. Pozostali mają prawa: odczyt.Pliki tylko do odczytu, których nikt nie powinien zmieniać
chmod 777rwxrwxrwxWłaściciel ma prawa: odczyt, zapis i wykonywanie. Grupa ma prawa: odczyt, zapis i wykonywanie. Pozostali mają prawa: odczyt, zapis i wykonywanie.Każdy może wszystko: unikaj poza jednorazowymi testami

Coś nie działa albo wynik wygląda na błędny? Zgłoś problem z tym narzędziem