Пользователи, группы и права
Как Linux хранит пользователей и группы, как их создавать и менять, как управлять доступом к файлам.
Пользователи
Заголовок раздела «Пользователи»Список пользователей лежит в файле /etc/passwd:

Запись о пользователе состоит из таких частей:

Создание пользователя
Заголовок раздела «Создание пользователя»useradd -m -c "Username Usernameov" -g usergroup usernameКоманда не интерактивная. Без ключей она не создаст домашний каталог (для этого нужен -m), не задаст пароль и не добавит пользователя в группу.
adduser usernameИнтерактивная команда: сама спросит пароль и данные пользователя и создаст домашний каталог.
Изменение пользователя
Заголовок раздела «Изменение пользователя»Атрибуты меняет usermod. Команда тоже не интерактивная, поэтому нужные изменения передают ключами:

Хэши паролей хранятся в /etc/shadow. Читать файл может только root.
Структура файла:

Структура записи:

Сменить пароль:
passwd usernameСписок групп лежит в /etc/group:

Формат записи группы:

Создать группу:
groupadd groupname
Права доступа
Заголовок раздела «Права доступа»Права задают цифрами: каждому праву соответствует число, а у класса пользователей они складываются.
| Право | Число |
|---|---|
Чтение (r) |
4 |
Запись (w) |
2 |
Исполнение (x) |
1 |
sudo chmod 755 example.txtПервая цифра относится к владельцу, вторая к группе, третья к остальным пользователям. Здесь владелец получает 7 (4+2+1, всё), группа и остальные 5 (4+1, чтение и исполнение).
Специальные флаги доступа
Заголовок раздела «Специальные флаги доступа»Файл запускается с правами владельца файла, а не того, кто его запускает.
chmod u+s file- Файл запускается с правами группы-владельца, а не группы запускающего.
- Для каталога: новые файлы внутри наследуют группу каталога, а не группу создавшего их пользователя.
chmod g+s dir # чаще всего применяется к каталогамУдалить или переименовать файл в каталоге может только его владелец (а также владелец каталога и root). Пример: /tmp.
chmod +t dir