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
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/useroraz 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.
- 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:
- 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.
- 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.
- 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.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.