Chmod

chmod (ang. change mode – zmiana atrybutu) – polecenie zmiany zezwoleń dostępu do plików w systemach uniksowych.

Użycie

chmod [opcje] uprawnienia plik
argument znaczenie
-c, --changes jak -v, ale podanie tylko kiedy zaszła zmiana
--no-preserve-root bez traktowania katalogu '/' w specjalny sposób (domyślnie)
--preserve-root odmowa rekursywnego działania na '/'
-f, --silent, --quiet wyłączenie większości komunikatów o błędach
-v, --verbose wypisanie informacji o każdym przetwarzanym pliku
--reference=plik_wzorcowy użycie uprawnień pliku plik_wzorcowy zamiast wartości uprawnienia
-R, --recursive zmiany też w plikach w podkatalogach
--help wyświetlenie tego opisu i zakończenie
--version wyświetlenie informacji o wersji i zakończenie

Opis klas użytkowników

  • u – użytkownik (ang. user)
  • g – grupa (ang. group)
  • o – inni (ang. others)
  • a – wszyscy (ang. all)

Uprawnienia

Istnieje kilka sposobów zapisu praw do danego pliku. Najpopularniejszymi są: system numeryczny, oraz literowy. Numerycznie chmod przyjmuje odpowiednią wartość potęgi dwójki dla każdego typu akcji (zapisu, odczytu, uruchomienia).

Typ zapisu Prawo odczytu Prawo zapisu Prawo uruchomienia Specjalne prawo uruchomienia UID/GID sticky bit
Potęga dwójki 22 21 20
Wartość w ósemkowym systemie liczbowym 4 2 1
Znak r (ang. read) w (ang. write) x (ang. execute) X s t

Aby zapisać uprawnienia w systemie numerycznym należy dodać liczby odpowiadające uprawnieniom, które chcemy przyznać. Należy tak postąpić osobno dla właściciela, grupy oraz innych, np. właściciel – wszystkie prawa, grupa – odczyt, inni – brak należy zapisać jako: 740.

Aby zapisać uprawnienia w systemie znakowym należy wpisać znak u, g, o lub a (patrz Opis parametrów) następnie znak:

  • + jeżeli chcemy dodać uprawnienia,
  • jeżeli chcemy odebrać uprawnienia,
  • = jeżeli chcemy zmienić uprawnienia (tzn. przypisać takie, jakie podamy),

a następnie odpowiednie oznaczenia z tabeli. Po przecinku można dopisać kolejne uprawnienia (np. u=rwx,g+rw,o-r wprowadza następujące zmiany:

  • dla właściciela – ustawiono odczyt, zapis oraz wykonanie, ale to ostatnie tylko wtedy jeżeli ono już jest ustawione, w innych plikach pozostanie wyłączone,
  • dla grupy – dodano odczyt i zapis,
  • dla innych – odebrano odczyt.)

By zobaczyć jakie prawa ma dany plik, lub katalog wystarczy użyć polecenia ls z (opcją -l).

$ ls -l
razem 2844
drw-r--r--    1 user   admin       4096 maj 28 16:38 folder1/
drwxrwxr-x    6 user   admin       4096 maj 25 19:18 folder2/
drw-rw-r--    1 user   admin       4096 maj 26 15:56 folder3/

Tabela z interpretacją kodów ósemkowych

Cyfra Prawa Litera Binarnie
0 Brak praw --- 000
1 Wykonywanie --x 001
2 Zapis -w- 010
3 Zapis i wykonanie -wx 011
4 Odczyt r-- 100
5 Odczyt i wykonanie r-x 101
6 Odczyt i zapis rw- 110
7 Odczyt, zapis i wykonanie rwx 111

Przykłady uprawnień

Prawa dostępu Wartość liczbowa Opis
-rw------- 600 Tylko właściciel ma prawo do odczytu i zapisu.
-rw-r--r-- 644 Właściciel ma prawo do zapisu i odczytu, a reszta tylko prawo odczytu.
-rw-rw-rw- 666 Wszyscy mają prawo do odczytu i zapisu.
-rwx------ 700 Tylko właściciel ma prawo do odczytu, zapisu, uruchomienia.
-rwxr-xr-x 755 Właściciel ma wszystkie prawa do pliku, reszta tylko prawo do odczytu i uruchomienia.
-rwxrwxrwx 777 Wszyscy mają wszystkie prawa do pliku.
-rwx--x--x 711 Wszystkie prawa ma właściciel, reszta tylko prawo uruchomienia.
drwx------ 700 Właściciel katalogu ma pełne prawa do niego (katalogi mają literkę 'd' na początku zamiast '-')
drwxr--r-- 744 Właściciel ma pełne prawa do katalogu, reszta ma prawo do odczytu.
-rwxr-xr-x 4755 Właściciel ma pełne prawa do pliku, grupa ma prawa odczytu i wykonania, reszta ma prawo odczytu i uruchamiania. Plik ma atrybut SUID (pierwsza cyfra w opcjach jest równa 4). Oznacza to, że plik wykonywalny, np. wywołuje proces i oddaje mu kontrole nad wykonaniem zadania. Bez opcji SUID proces działa z uprawnieniami użytkownika, który uruchomił plik, co czasami może powodować niewykonanie zadania, gdyż użytkownik nie miał dostatecznych uprawnień. Z opcją SUID proces pobiera uprawnienia właściciela pliku, najczęściej roota. Polecenie ping i uprawnienia do pliku wykonywalnego są przykładem wykorzystania tej opcji.

Przykłady użycia

  • $ chmod a+w plik.txt — nadaje wszystkim uprawnienia do zmiany 'plik.txt',
  • $ chmod o-x plik.txt — usuwa możliwość wykonywania 'plik.txt' przez pozostałych użytkowników,
  • $ chmod go-rx plik.txt — usuwa możliwość odczytywania i wykonywania "plik.txt" przez grupę i pozostałych użytkowników.
  • $ chmod -R 777 /home/user — wszyscy będą mogli zmieniać zawartość katalogu /home/user oraz jego podkatalogów, jak też czytać go i wykonywać zawarte w nim pliki

Zobacz też

Linki zewnętrzne

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya