chmod
Z Wikipedii
chmod (ang. change mode - zmiana atrybutu) - polecenie zmiany zezwoleń dostępu do plików w systemach uniksowych.
Spis treści |
[edytuj] 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 |
[edytuj] Opis klas użytkowników
[edytuj] 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 | |||
| Numer dziesiętny | 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/
[edytuj] 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ą pełne prawa (nie zalecane). |
| -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. |
| -rwsr-xr-x | 4755 | Właściciel ma pełne prawa do pliku, grupa ma prawa odczytu i wykonania, reszta ma prawo uruchamiania. Plik ma atrybut SUID -pierwsza cyfra w opcjach(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ć nie wykonanie 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ą świetnym przykładem ustawienia tej opcji. |
[edytuj] Przykłady użycia
- $ chmod a+w plik.txt – wszyscy będą mogli edytować 'plik.txt'
- $ chmod o-x plik.txt – usunie możliwość wykonywania 'plik.txt' przez pozostałych użytkowników
- $ chmod go=rx plik.txt – pozostali użytkownicy, oraz grupa będą mogli tylko czytać i wykonywać.
- $ chmod -R 777 /home/user – wszyscy będą mogli zmieniać zawartość katalogu
/home/useroraz jego podkatalogów, jak też czytać go i wykonywać zawarte w nim pliki
[edytuj] Zobacz też
- Podręcznik po polsku - chmod
- – podręcznik dyskowy w systemie Linux
|
||||||||||||||||||||||||||

