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ć
- Wpisz tryb, np. 755, 0644 lub rwxr-xr-x, albo wklej pierwszą kolumnę z ls -l.
- Albo zaznacz odczyt, zapis i wykonywanie dla właściciela, grupy i wszystkich pozostałych.
- Dodaj setuid, setgid lub sticky bit, jeśli ich potrzebujesz.
- 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.
| Tryb | rwx | Kto może co | Typowe zastosowanie |
|---|---|---|---|
chmod 755 | rwxr-xr-x | Wł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 644 | rw-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 600 | rw------- | 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 700 | rwx------ | 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 775 | rwxrwxr-x | Wł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 664 | rw-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 750 | rwxr-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 640 | rw-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 444 | r--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 777 | rwxrwxrwx | Wł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