*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