права файла описываются в последовательности: права владельца - права группы - права остальных
Расшифровка для chmod
0 | - - - | 000 | Все типы доступа запрещены |
1 | - - x | 001 | Разрешено выполнение |
2 | - w- | 010 | Разрешена запись |
3 | - wx | 011 | Разрешена запись и выполнение |
4 | r - - | 100 | Разрешено чтение |
5 | r - x | 101 | Разрешено чтение и выполнение |
6 | r w- | 110 | Разрешено чтение и запись |
7 | rwx | 111 | Все типы доступа разрешены |
Расшифровка для chown
"u" - пользователь/владелец
"g" - группа пользователей
"o" - остальные пользователи
"a" - все группы пользователей
Примеры
chmod -R 755 folder/
chown myuser:mygroup file установить myuser/mygroup для файла
Популярные значения с вики
Про наследство
Допустим нужно при работе в каталоге, владелец которой является другой пользователь/группа, что бы файлы твой пользователь мог читать, писать и исполнять.
Например: для того что бы nginx или питон могли достучаться до нужных им файлам можно сделать так, что бы при создании файла/папки она автоматом числилась за dev01:devgroup.
Например: для того что бы nginx или питон могли достучаться до нужных им файлам можно сделать так, что бы при создании файла/папки она автоматом числилась за dev01:devgroup.
Для этого используются дополнительные биты прав:
SUID (копируются права на пользователя, setuid ставит бит = 4);
SGID (копируются права на группу, setgid ставит бит = 2)
sticky (можно писать в чужие файлы, но нельзя их удалить; бит = 1).
Расшифровка дополнительных битов
восьмеричное двоичное описание
0 000 Нет дополнительных прав
1 001 Установлен sticky бит
2 010 Установлен setgid бит
3 011 Установлены sticky и setgid биты
4 100 Установлен setuid бит
5 101 Установлены setuid и sticky биты
6 110 Установлены setuid и setgid биты
7 111 Все дополнительные права разрешены
chmod 4755 file - устанавливает бит SUID и заменяет обычные права на 755 (rwxr-xr-x).
chmod u+s file - тоже самое, только обычные права не перезаписываются.
chmod 2755 file - устанавливает на файл бит SGID и заменяет обычные права на 755 (rwxr-xr-x).
chmod g+s file - тоже самое, только обычные права не перезаписываются
установленный SUID:
- r w s - - - - - - установлены биты SUID и выполнение для владельца
- r - S - - - - - - установлен бит SUID, не установлен бит выполнения
установленный SGID:
- r w x r w s - - - установлены биты SGID и выполнение для группы
- r w x r - S - - - установлен бит SGID, не установлен бит выполнения для группы
установленный sticky бит:
- r w x r w x r w t установлены биты sticky и выполнение для других
- r w x r w x r - T установлен sticky бит, но не установлен бит выполнения для других
Теперь, если у вас есть каталог,
- в котором хранятся проекты,
- которые ковыряют несколько админов
, то можно создать группу devs с нужными правами, в нее включить участников dev01, dev02 и srv01 (для nginx). А потом на каталог с проектами поставить chmod 6775
Где искать к какой группе принадлежит пользователь?
groups %username%
Какие вообще есть группы?
cat /etc/group
Какие есть пользователи в системе
Примеры команд
chmod 4755 file - устанавливает бит SUID и заменяет обычные права на 755 (rwxr-xr-x).
chmod u+s file - тоже самое, только обычные права не перезаписываются.
chmod 2755 file - устанавливает на файл бит SGID и заменяет обычные права на 755 (rwxr-xr-x).
chmod g+s file - тоже самое, только обычные права не перезаписываются
установленный SUID:
- r w s - - - - - - установлены биты SUID и выполнение для владельца
- r - S - - - - - - установлен бит SUID, не установлен бит выполнения
установленный SGID:
- r w x r w s - - - установлены биты SGID и выполнение для группы
- r w x r - S - - - установлен бит SGID, не установлен бит выполнения для группы
установленный sticky бит:
- r w x r w x r w t установлены биты sticky и выполнение для других
- r w x r w x r - T установлен sticky бит, но не установлен бит выполнения для других
Примеры использования
Теперь, если у вас есть каталог,
- в котором хранятся проекты,
- которые ковыряют несколько админов
, то можно создать группу devs с нужными правами, в нее включить участников dev01, dev02 и srv01 (для nginx). А потом на каталог с проектами поставить chmod 6775
Частые вопросы
Где искать к какой группе принадлежит пользователь?
groups %username%
Какие вообще есть группы?
cat /etc/group
Какие есть пользователи в системе
sudo cat /etc/passwd
Как добавить группу?
groupadd %grouname%
как добавить пользователя (существующего) в группу (вторичную)?
usermod -a -G %groupname% %username%
groupadd %grouname%
как добавить пользователя (существующего) в группу (вторичную)?
usermod -a -G %groupname% %username%