*Cube-Host– облачный хостинг!!

Настройка и управление пользователями на VPS под управлением Linux

User configuration and management in Linux VPS

Правильное управление пользователями — одна из важнейших «основ» эксплуатации VPS на базе Linux. Цель проста: избегать работы с правами root, использовать доступ на основе ролей, обеспечить надежную аутентификацию и сделать права доступа предсказуемыми для совместной работы и развертывания приложений.

В этом руководстве рассматриваются создание пользователей, управление группами, предоставление минимальных привилегий sudo, политики паролей, доступ по SSH-ключам, общие каталоги (setgid/ACL) и безопасная процедура удаления пользователей. Начните с «чистого» и стабильного VPS под управлением Linux, чтобы обеспечить последовательный контроль доступа с самого первого дня.

Базовая модель учетных записей (1 минута теории)

  • Пользователи: /etc/passwd (UID, GID, оболочка, домашний каталог).
  • Хэши паролей: /etc/shadow (доступны только root).
  • Группы: /etc/group (GID и участники).
  • Домашние каталоги: обычно /home/, шаблон по умолчанию: /etc/skel.

Совет: в большинстве дистрибутивов UID ≥ 1000 используются для обычных пользователей, а более низкие UID — для системных/сервисных учетных записей.

Создание пользователя

1) Удобный мастер adduser (Debian/Ubuntu)

sudo adduser alice
sudo usermod -aG sudo alice

Проверьте права sudo (вам будет предложено ввести пароль Алисы):

su - alice
sudo -v
sudo whoami
Creating a user with adduser on Linux VPS

2) «Низкоуровневый» метод с использованием useradd (универсальный)

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
Useradd with custom home directory on Linux VPS

Проверка:

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 и /etc/sudoers.d)

Редактируйте правила sudo только через visudo — это проверяет синтаксис и предотвращает «зависание» доступа администратора.

Полный sudo (как группа sudo)

sudo visudo

Пример правила (не дублируйте, если ваш дистрибутив уже использует %sudo или %wheel):

%sudo   ALL=(ALL:ALL) ALL

Минимальные привилегии (пример для nginx)

Создайте отдельный файл 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
Minimal sudo rules via /etc/sudoers.d on Linux VPS

Рекомендация: по возможности предоставляйте права через группы (%webadmins ...), а затем добавляйте/удаляйте пользователей из группы для управления доступом.

Политика паролей (срок действия) и сложность

Пользовательские настройки через chage

# 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

Значения по умолчанию для новых пользователей (login.defs)

sudo nano /etc/login.defs

Пример значений по умолчанию:

PASS_MAX_DAYS   90
PASS_MIN_DAYS   1
PASS_WARN_AGE   14

Сложность паролей (PAM, Ubuntu/Debian)

Настройте и сконфигурируйте правила качества паролей (тщательно протестируйте на производственных системах).

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

Ключи SSH и ограничения SSH

Добавьте открытый ключ пользователю

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
Adding SSH public key to a Linux user on VPS

Ограничить доступ в sshd_config

Основные меры по усилению безопасности: отключение аутентификации по паролю, запрет входа пользователя 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

Совместная работа в каталоге (групповой ACL)

setgid для каталога проекта (наследование группы)

С 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 (если требуются права, выходящие за рамки стандартных)

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

Контрольный список готовности к производственной эксплуатации

  • Пользователь создан, домашний каталог и оболочка указаны правильно, SSH-ключ добавлен.
  • Назначены группы на основе ролей (sudo/adm/www-data/docker/… по мере необходимости).
  • Правила sudo выдаются /etc/sudoers.d с минимальными привилегиями.
  • Установлена политика паролей (chage/login.defs/PAM, где необходимо).
  • Усиление безопасности SSH: пароли отключены, вход под пользователем root запрещен, а доступ ограничен с помощью AllowGroups при необходимости.
  • Для группы в общих каталогах используется атрибут setgid, а там, где необходимо, — списки контроля доступа (ACL).
  • Существует процедура деактивации пользователей (блокировка → удаление процессов → резервное копирование → удаление).

Создайте модель безопасного доступа на вашем VPS под управлением Linux

Доступ на основе ролей и упорядоченное управление пользователями упрощают работу с сервером и делают ее более безопасной в производственной среде. Разверните надежный VPS под Linux, а затем с самого первого дня правильно настройте пользователей, группы, правила sudo и доступ по SSH.

Prev
Menu