Управление пользователями и правами Linux: sudo и группы
Управление пользователями Linux с useradd/usermod/userdel, управление группами, настройка sudo, аутентификация по SSH-ключу и принцип минимальных привилегий.
Содержание
Управление пользователями и правами Linux: sudo и группы
Управление пользователями и правами в Linux — краеугольный камень безопасности сервера. Правильно настроенные учётные записи и разрешения предотвращают несанкционированный доступ и ограничивают последствия нарушений безопасности. В этом руководстве рассматриваются управление пользователями Linux, структура групп, настройка sudo и аутентификация по SSH-ключу.
Управление пользователями
Создание пользователей
# Создать базового пользователя
sudo useradd имя_пользователя
# Создать пользователя с домашним каталогом
sudo useradd -m имя_пользователя
# С домашним каталогом, оболочкой и комментарием
sudo useradd -m -s /bin/bash -c "Имя Фамилия" имя_пользователя
# С определённым UID
sudo useradd -m -u 1500 имя_пользователя
# С основной группой
sudo useradd -m -g www-data имя_пользователя
# Установить пароль
sudo passwd имя_пользователя
# Просмотр информации о пользователе
id имя_пользователя
getent passwd имя_пользователя
Изменение пользователей
# Переименовать пользователя
sudo usermod -l новое_имя старое_имя
# Изменить домашний каталог
sudo usermod -d /новый/домашний -m имя_пользователя
# Изменить оболочку
sudo usermod -s /bin/bash имя_пользователя
# Заблокировать учётную запись
sudo usermod -L имя_пользователя
# Разблокировать учётную запись
sudo usermod -U имя_пользователя
# Установить дату истечения срока действия
sudo usermod -e 2025-12-31 имя_пользователя
# Принудительная смена пароля при следующем входе
sudo chage -d 0 имя_пользователя
Удаление пользователей
# Удалить пользователя (домашний каталог сохраняется)
sudo userdel имя_пользователя
# Удалить пользователя и домашний каталог
sudo userdel -r имя_пользователя
# Найти файлы, принадлежащие пользователю
find / -user имя_пользователя 2>/dev/null
Управление группами
# Создать группу
sudo groupadd разработчики
# Добавить пользователя в группу
sudo usermod -aG разработчики имя_пользователя
# Добавить в несколько групп
sudo usermod -aG группа1,группа2,группа3 имя_пользователя
# Просмотр групп пользователя
groups имя_пользователя
id имя_пользователя
# Список пользователей в группе
getent group разработчики
# Удалить пользователя из группы
sudo gpasswd -d имя_пользователя разработчики
# Удалить группу
sudo groupdel разработчики
# Переименовать группу
sudo groupmod -n новое_имя старое_имя
Настройка sudo
Предоставление доступа sudo
# Добавить пользователя в группу sudo (Debian/Ubuntu)
sudo usermod -aG sudo имя_пользователя
# Добавить пользователя в группу wheel (RHEL/CentOS)
sudo usermod -aG wheel имя_пользователя
# Проверить изменение
su - имя_пользователя
sudo whoami # должно вывести: root
Настройка файла sudoers
# Безопасное редактирование файла sudoers
sudo visudo
# Содержимое /etc/sudoers
# Полный доступ sudo для пользователя
имя_пользователя ALL=(ALL:ALL) ALL
# sudo без пароля (использовать с осторожностью)
имя_пользователя ALL=(ALL) NOPASSWD: ALL
# sudo только для определённых команд
имя_пользователя ALL=(ALL) /usr/bin/systemctl, /usr/bin/apt
# Доступ sudo для группы
%разработчики ALL=(ALL:ALL) ALL
# Без пароля для конкретной команды
имя_пользователя ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
# Создать отдельный файл (рекомендуемый подход)
sudo nano /etc/sudoers.d/имя_пользователя
# Содержимое файла
имя_пользователя ALL=(ALL:ALL) ALL
# Установить права доступа к файлу
sudo chmod 440 /etc/sudoers.d/имя_пользователя
Права доступа к файлам
# Просмотр прав доступа
ls -la /каталог/
# Изменение прав (числовой формат)
chmod 755 скрипт.sh # rwxr-xr-x
chmod 644 файл.txt # rw-r--r--
chmod 600 секрет.key # rw-------
# Изменение прав (символьный формат)
chmod u+x скрипт.sh # добавить выполнение для владельца
chmod g-w файл.txt # убрать запись для группы
chmod o-r секрет.txt # убрать чтение для остальных
# Изменение владельца
chown имя_пользователя файл.txt
chown имя_пользователя:группа файл.txt
# Рекурсивное изменение каталога
chown -R имя_пользователя:группа /каталог/
Аутентификация по SSH-ключу
Генерация пары SSH-ключей
# Генерация ключа на локальной машине
ssh-keygen -t ed25519 -C "email@example.com"
# RSA-ключ (для старых систем)
ssh-keygen -t rsa -b 4096 -C "email@example.com"
# Ключи создаются в ~/.ssh/:
# ~/.ssh/id_ed25519 (закрытый ключ)
# ~/.ssh/id_ed25519.pub (открытый ключ)
Копирование открытого ключа на сервер
# С помощью ssh-copy-id (самый простой способ)
ssh-copy-id пользователь@ip_сервера
# Ручное копирование
cat ~/.ssh/id_ed25519.pub | ssh пользователь@ip_сервера "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
# Ручная настройка на сервере
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys # вставить открытый ключ
chmod 600 ~/.ssh/authorized_keys
Настройка безопасности SSH
sudo nano /etc/ssh/sshd_config
# Отключить аутентификацию по паролю (после настройки ключа)
PasswordAuthentication no
# Отключить вход root
PermitRootLogin no
# Запретить пустые пароли
PermitEmptyPasswords no
# Максимальное количество попыток входа
MaxAuthTries 3
# Разрешить определённых пользователей
AllowUsers пользователь1 пользователь2
# Разрешить определённую группу
AllowGroups ssh-users
# Перезапустить SSH
sudo systemctl restart sshd
# Проверить конфигурацию
sudo sshd -t
Принцип минимальных привилегий
Принцип минимальных привилегий гласит, что каждый пользователь и процесс должны иметь только минимальные разрешения, необходимые для выполнения своей задачи.
# Создать выделенного пользователя для приложения (без оболочки)
sudo useradd -r -s /usr/sbin/nologin -d /var/lib/myapp myapp_user
# Создать домашний каталог для служебного пользователя
sudo mkdir -p /var/lib/myapp
sudo chown myapp_user:myapp_user /var/lib/myapp
sudo chmod 750 /var/lib/myapp
Избегайте прямого использования учётной записи root. Создайте отдельные учётные записи для каждого администратора и авторизуйте через sudo. Так все действия будут зарегистрированы и отслеживаемы.
Мониторинг активности пользователей
# Просмотр последних входов
last
lastlog
# Просмотр неудачных попыток входа
lastb
# Просмотр активных пользователей
who
w
# Мониторинг использования sudo
sudo grep sudo /var/log/auth.log
Заключение
Управление пользователями и правами Linux составляет основу безопасности сервера. Предоставляйте каждому пользователю только необходимые разрешения, используйте аутентификацию по SSH-ключу и ограничивайте доступ root. Эти практики защищают серверы REXE от несанкционированного доступа.
Связанные статьи
Подключение к VDS по SSH: PuTTY, терминал и SSH-ключи
Пошаговое руководство по SSH-подключению к Linux VDS: PuTTY, терминал, аутентификация по ключу, правило фильтрации Path Panel и советы по безопасности.
Подключение к Windows VDS по RDP: полное руководство
Пошаговое руководство по RDP-подключению к Windows Server VDS: настройка, безопасность NLA, правило фильтрации Path Panel и устранение неполадок.
Смена ОС VDS-сервера: пошаговое руководство (Reinstall)
Смена операционной системы VDS через панель REXE: советы по резервному копированию, поддерживаемые дистрибутивы Linux и версии Windows Server.