
Правильное управление пользователями — одна из важнейших «основ» эксплуатации VPS на базе Linux. Цель проста: избегать работы с правами root, использовать доступ на основе ролей, обеспечить надежную аутентификацию и сделать права доступа предсказуемыми для совместной работы и развертывания приложений.
В этом руководстве рассматриваются создание пользователей, управление группами, предоставление минимальных привилегий sudo, политики паролей, доступ по SSH-ключам, общие каталоги (setgid/ACL) и безопасная процедура удаления пользователей. Начните с «чистого» и стабильного VPS под управлением Linux, чтобы обеспечить последовательный контроль доступа с самого первого дня.
/etc/passwd (UID, GID, оболочка, домашний каталог)./etc/shadow (доступны только root)./etc/group (GID и участники)./home/, шаблон по умолчанию: /etc/skel.Совет: в большинстве дистрибутивов UID ≥ 1000 используются для обычных пользователей, а более низкие UID — для системных/сервисных учетных записей.
sudo adduser alice
sudo usermod -aG sudo alice
Проверьте права sudo (вам будет предложено ввести пароль Алисы):
su - alice
sudo -v
sudo whoami

sudo useradd -m -s /bin/bash bob
sudo passwd bob
Это полезно, если вы храните пользователей проекта в /srv или на отдельном диске/томе.
sudo useradd -m -d /srv/users/charlie -s /bin/bash charlie
sudo passwd charlie
# Ensure strict permissions (example: only user group can read)
sudo chown -R charlie:charlie /srv/users/charlie
sudo chmod 750 /srv/users/charlie

Проверка:
id alice
getent passwd alice
ls -la /home/alice
sudo -l -U alice
Группы — это самый чистый способ управления доступом. Старайтесь не предоставлять всем «полные привилегии sudo» — по возможности используйте группы на основе ролей.
# Add user to a group (example: docker)
sudo usermod -aG docker alice
# Show groups
groups alice
id alice
sudo gpasswd -d alice docker
sudo groupadd webadmins
sudo usermod -aG webadmins alice
sudo usermod -aG webadmins bob
Редактируйте правила sudo только через visudo — это проверяет синтаксис и предотвращает «зависание» доступа администратора.
sudo visudo
Пример правила (не дублируйте, если ваш дистрибутив уже использует %sudo или %wheel):
%sudo ALL=(ALL:ALL) ALL
Создайте отдельный файл sudoers для группы ролей. Используйте только абсолютные пути.
sudo visudo -f /etc/sudoers.d/webadmins
Пример содержимого:
# Allow only safe, specific commands (example)
%webadmins ALL=(root) NOPASSWD: /usr/sbin/nginx -t, /bin/systemctl reload nginx
# Recommendation: avoid NOPASSWD unless automation truly requires it

Рекомендация: по возможности предоставляйте права через группы (%webadmins ...), а затем добавляйте/удаляйте пользователей из группы для управления доступом.
# Show current policy
sudo chage -l alice
# Example: max 90 days, min 1 day, warn 14 days before expiry
sudo chage -M 90 -m 1 -W 14 alice
sudo nano /etc/login.defs
Пример значений по умолчанию:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 1
PASS_WARN_AGE 14
Настройте и сконфигурируйте правила качества паролей (тщательно протестируйте на производственных системах).
sudo apt update
sudo apt install -y libpam-pwquality
Редактировать /etc/pam.d/common-password и добавьте/настройте pam_pwquality настройки. Пример:
password requisite pam_pwquality.so retry=3 minlen=14 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
sudo -u alice mkdir -p /home/alice/.ssh
sudo -u alice chmod 700 /home/alice/.ssh
# Add the public key (replace with your actual key)
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... yourkey" | sudo tee -a /home/alice/.ssh/authorized_keys >/dev/null
sudo -u alice chmod 600 /home/alice/.ssh/authorized_keys

Основные меры по усилению безопасности: отключение аутентификации по паролю, запрет входа пользователя root и ограничение доступа по SSH для определенной группы.
sudo groupadd sshusers || true
sudo usermod -aG sshusers alice
sudo nano /etc/ssh/sshd_config
Примеры директив:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowGroups sshusers
Перезапустите SSH (Ubuntu/Debian):
sudo sshd -t
sudo systemctl reload ssh
Важно: перед отключением паролей убедитесь, что аутентификация по ключам работает, иначе вы можете потерять доступ.
Используйте учетную запись без оболочки для сервисов и автоматизации (снижает риск в случае утечки учетных данных).
# Create a service user without interactive shell
sudo useradd -r -m -s /usr/sbin/nologin svcdeploy
# Lock password login (key-based only if needed)
sudo passwd -l svcdeploy
С setgid новые файлы автоматически наследуют группу каталога — это очень полезно для командной работы.
sudo groupadd project || true
sudo mkdir -p /srv/project
sudo chown -R root:project /srv/project
# 2 in 2775 enables setgid bit
sudo chmod 2775 /srv/project
# Add users to the project group
sudo usermod -aG project alice
sudo usermod -aG project bob
ACL позволяет устанавливать точные права доступа и правила по умолчанию для вновь созданных файлов.
sudo apt install -y acl || true
# Grant rwx to group on the directory (and set default ACL for new files)
sudo setfacl -m g:project:rwx /srv/project
sudo setfacl -d -m g:project:rwx /srv/project
# Check ACL
getfacl /srv/project
Когда над одним и тем же VPS работают несколько администраторов, базовый аудит помогает отслеживать доступ и быстро диагностировать проблемы.
# Recent logins
last -a | head -n 20
# Last login per user
lastlog | head -n 20
# SSH logs (Ubuntu/Debian)
sudo tail -n 200 /var/log/auth.log
# Systemd-based view (often works everywhere)
sudo journalctl -u ssh --since "today" | tail -n 100 || true
sudo journalctl -u sshd --since "today" | tail -n 100 || true
Безопасный процесс ухода сотрудника: блокировка → завершение сеанса → резервное копирование → удаление. Это помогает избежать неожиданностей и сохранить данные в случае необходимости.
# 1) Lock password (prevents password auth)
sudo passwd -l alice
# 2) Disable shell (prevents interactive login if it’s still allowed)
sudo usermod -s /usr/sbin/nologin alice
# 3) Kill running processes (optional)
sudo pkill -u alice || true
# 4) Backup home directory (optional but recommended)
sudo tar -czf /root/alice-home-$(date %F).tar.gz /home/alice
# 5) Remove user and home directory (final step)
sudo userdel -r alice
/etc/sudoers.d с минимальными привилегиями.chage/login.defs/PAM, где необходимо).AllowGroups при необходимости.Доступ на основе ролей и упорядоченное управление пользователями упрощают работу с сервером и делают ее более безопасной в производственной среде. Разверните надежный VPS под Linux, а затем с самого первого дня правильно настройте пользователей, группы, правила sudo и доступ по SSH.