2022-05-10 14:24:58 +00:00
|
|
|
|
# Права доступа
|
|
|
|
|
|
|
|
|
|
`chmod` (*change mode*) — команда для изменения прав доступа к файлам и каталогам.
|
|
|
|
|
|
|
|
|
|
Синтаксис:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod опции права /путь/к/файлу
|
|
|
|
|
```
|
|
|
|
|
|
2022-05-10 20:20:10 +00:00
|
|
|
|
где `опции`:
|
|
|
|
|
|
|
|
|
|
- `-c` - выводить информацию обо всех изменениях
|
|
|
|
|
- `-f` - не выводить сообщения об ошибках
|
|
|
|
|
- `-v` - выводить максимум информации
|
|
|
|
|
- `-R` - включить поддержку рекурсии
|
|
|
|
|
|
2022-05-10 14:24:58 +00:00
|
|
|
|
## Права и пользователи
|
|
|
|
|
|
|
|
|
|
Основные права на файл (директорию):
|
|
|
|
|
|
2022-05-10 20:20:10 +00:00
|
|
|
|
||Атрибут|Описание|
|
|
|
|
|
|:-:|:-:|-|
|
|
|
|
|
|Первый символ|`r`| чтение (*reading*)|
|
|
|
|
|
|Второй символ|`w`| запись (*writing*)|
|
|
|
|
|
|Третий символ|`x`| выполнение (*execution*)|
|
|
|
|
|
|
|
|
|
|
Расширенные права:
|
|
|
|
|
|
|
|
|
|
|Права|Числовое значение|Относительный режим|Применение к файлам|Применение к каталогам|
|
|
|
|
|
|:-:|:-:|:-:|-|-|
|
|
|
|
|
|`SUID`|`4`|`u+s`|Пользователь выполняет файл с разрешениями владельца файла|Нет смысла применять|
|
|
|
|
|
|`SGID`|`2`|`g+s`|Пользователь выполняет файл с разрешениями владельца группы|Файлы, созданные в каталоге получают одного и того же владельца группы|
|
|
|
|
|
|`sticky bit`|`1`|`+t`|Нет смысла применять|Запрещает пользователям удалять файлы от других пользователей|
|
2022-05-10 14:24:58 +00:00
|
|
|
|
|
|
|
|
|
Категории пользователей, для которых вы можете установить эти права на файл:
|
|
|
|
|
|
|
|
|
|
- `u` - владелец файла;
|
|
|
|
|
- `g` - группа файла;
|
|
|
|
|
- `o` - все остальные пользователи;
|
|
|
|
|
- `a` - все пользователи (или `ugo`)
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
400 r-- --- --- │
|
|
|
|
|
200 -w- --- --- ├── права пользователя (u - user)
|
|
|
|
|
100 --x --- --- │
|
|
|
|
|
|
|
|
|
|
040 --- r-- --- │
|
|
|
|
|
020 --- -w- --- ├── права группы (g - group)
|
|
|
|
|
010 --- --x --- │
|
|
|
|
|
|
|
|
|
|
004 --- --- r-- │
|
|
|
|
|
002 --- --- -w- ├── права всех остальных (o - other)
|
|
|
|
|
001 --- --- --x │
|
|
|
|
|
```
|
|
|
|
|
|
2022-05-10 20:20:10 +00:00
|
|
|
|
Расширенные права:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
400 --s ── SUID
|
|
|
|
|
200 --s ── SGID
|
|
|
|
|
100 --t ── sticky bit
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Если в триаде присутствует право на выполнение (`x`), то символ устанавливает строчный, иначе - заглавный:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
drwSr-sr-T 2 alexander alexander 4096 мая 10 19:36 folder
|
|
|
|
|
```
|
|
|
|
|
|
2022-05-10 14:24:58 +00:00
|
|
|
|
Комбинации прав:
|
|
|
|
|
|
|
|
|
|
```sh
|
2022-05-10 14:30:35 +00:00
|
|
|
|
r-- 4 100
|
|
|
|
|
-w- 2 010
|
|
|
|
|
--x 1 001
|
2022-05-10 14:24:58 +00:00
|
|
|
|
rw- 6 (4 + 2) 110
|
|
|
|
|
r-x 5 (4 + 1) 101
|
|
|
|
|
-wx 3 (2 + 1) 011
|
|
|
|
|
rwx 7 (4 + 2 + 1) 111
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
или
|
|
|
|
|
|
|
|
|
|
```sh
|
2022-05-10 14:30:35 +00:00
|
|
|
|
--x 1 001
|
|
|
|
|
-w- 2 010
|
2022-05-10 14:24:58 +00:00
|
|
|
|
-wx 3 (2 + 1) 011
|
2022-05-10 14:30:35 +00:00
|
|
|
|
r-- 4 100
|
2022-05-10 14:24:58 +00:00
|
|
|
|
r-x 5 (4 + 1) 101
|
|
|
|
|
rw- 6 (4 + 2) 110
|
|
|
|
|
rwx 7 (4 + 2 + 1) 111
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Значениями по умолчанию являются:
|
|
|
|
|
|
|
|
|
|
- для файлов: `644` (`-rw-r--r--`)
|
|
|
|
|
- для каталогов: `755` (`drwxr-xr-x`), где `d` - directory
|
|
|
|
|
|
|
|
|
|
## Использование
|
|
|
|
|
|
2022-05-10 20:20:10 +00:00
|
|
|
|
Установка|добавление|изменение|удаление прав может осуществляться как установкой цифровым значением, так и символьным:
|
|
|
|
|
|
|
|
|
|
- Установка: `=`
|
|
|
|
|
- Добавление: `+`
|
|
|
|
|
- Удаление: `-`
|
|
|
|
|
|
|
|
|
|
Например, установка прав:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
u=rwx,g=rx,o=rx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
или
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
u=rwx,go=rx
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Добавление прав:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
u+s,go+w
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Удаление прав:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
ug-wx,o=
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Примеры
|
|
|
|
|
|
|
|
|
|
Установка прав на чтение и запись пользователю и группе и на только чтение всем остальным:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod 664 file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
или
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod ug=rw,o=r file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
результат:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
-rw-rw-r-- 1 alexander alexander 0 мая 10 19:05 file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Установить права на чтение, запись и выполнение только пользователю:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod 700 file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
или
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod u=rwx,go= file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
результат:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
-rwx------ 1 alexander alexander 0 мая 10 19:05 file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
а теперь добавить только на выполнение группе и всем остальным:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod 711 file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
или
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod go+x file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
результат:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
-rwx--x--x 1 alexander alexander 0 мая 10 19:05 file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Установить права на каталог (`drwxr-xr-x`), чтобы удалить файл внутри каталога мог только владелец файла:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod 1755 folder
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
или
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
chmod +t folder
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
результат:
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
drwxr-xr-t 2 alexander alexander 4096 мая 10 19:36 folder
|
|
|
|
|
```
|