Глава 8. Управление пользователями и группами
8.1. Введение
Проблема
В системе Linux как «живым» пользователям, так и системным процессам назначаются учётные записи (accounts), необходимые для управления привилегиями и правилами доступа.
Решение
Запомните два важнейших принципа безопасности Linux:
- Всегда используйте минимальный уровень привилегий, необходимый для выполнения работы.
- Используйте сильные пароли.
Соблюдение этих двух принципов избавит вас от многочисленных огорчений и неудач.
В Linux входит набор утилит для выполнения операций с пользователями и группами: useradd
, groupadd
, userdel
, groupdel
, usermod
, groupmod
, passwd
, chfn
и chsh
. Эти утилиты принадлежат к семейству Shadow Suite, разработанному Джулианной Фрэнсис Хо (Julianne Frances Haugh) для улучшения защиты паролей и упрощения управления учётными записями.
Когда-то все файлы приходилось редактировать по отдельности, а шифрованные пароли хранились в файле /etc/passwd
. Но поскольку файл /etc/passwd
должен оставаться доступным для чтения, хранение паролей в нём, пусть даже в зашифрованном виде, может представлять угрозу безопасности. Скопировав этот файл, любой желающий может попытаться вычислить пароли.
Перемещение зашифрованных паролей в файл /etc/shadow
, доступный только для привилегированного пользователя root, создаёт дополнительный уровень защиты.
Команда useradd
по-разному работает в разных системах. Традиционно она включала всех новых пользователей в одну группу users(100)
. Это делало все домашние каталоги общедоступными, потому что все пользователи принадлежали к одной группе. В Red Hat эта схема была заменена на схему «User Privacy Group». В этой схеме для каждого нового пользователя создаётся приватная группа, идентификатор которой (GID) совпадает с идентификатором пользователя (UID).
Разумеется, разные пользователи имеют разные потребности. Некоторые могут предпочесть, чтобы их каталоги были открытыми для общего доступа. Тем не менее, фундаментальный принцип безопасности гласит: «сначала всё запретить, потом разрешать по мере необходимости».
Команды adduser
и addgroup
— это сценарные Perl-обёртки для команд useradd
и groupadd
. Эти сценарии предоставляют удобный интерфейс для создания новых учётных записей, но могут быть менее гибкими для серийных (batch) операций. В таких случаях вам может понадобиться внести изменения в сценарии adduser
и addgroup
.
Если вам нужно создать множество пользователей одновременно, в разделе 8.17 приведён сценарий для серийного создания новых пользователей и изменения паролей.
Комментарий
В современных системах Linux использование мощных инструментов для управления пользователями и группами значительно упрощает задачу управления безопасностью системы. Возможность сегрегации пользователей по группам и распределение привилегий позволяет избежать множества потенциальных уязвимостей.
Кроме того, особое внимание следует уделять политике создания и управления паролями. Использование утилит, предоставляющих дополнительные уровни защиты, таких как Shadow Suite, способствует защите данных и предотвращению несанкционированного доступа.
См. также
useradd(8), groupadd(8), passwd(1), Shadow Suite, Perl.