Управление пользователями и их правами в Ubuntu 22.04: создание, настройка и безопасность

Управление пользователями и их правами в Ubuntu 22.04: создание, настройка и безопасность

Чтобы система оставалась в безопасности, важно правильно настроить права пользователей. Рассказываем, как создать пользователя в Ubuntu и управлять его правами, а также какие меры принять, чтобы минимизировать риски от кражи учётных данных.

Управление пользователями и их правами — фундамент безопасности любой системы, особенно если речь идёт о VPS. Неправильно настроенные аккаунты могут стать лазейкой для атак: например, если злоумышленник получит доступ к учётной записи с привилегиями sudo, он сможет удалить критичные файлы или установить вредоносное ПО. В этой статье разберём, как создать пользователей в Ubuntu 22.04, гибко управлять их правами и минимизировать риски, даже если учётные записи будут скомпрометированы.

Аренда VPS/VDS от 219 руб/месяц

Преимущества VPS в AdminVPS:

✓ Бесплатное администрирование

✓ Только быстрые NVMe-диски

✓ Защита от DDoS-атак

✓ Быстрая техподдержка

Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой

Зачем создавать пользователей с ограниченными правами

Каждый аккаунт в Linux — это изолированная среда, из которой недоступно внешнее окружение. Когда пользователь работает под учётной записью без прав sudo, случайный запуск скрипта с rm -rf / не уничтожит систему. Многие службы, в том числе Nginx или MySQL, также должны работать под отдельными пользователями, чтобы ограничить последствия взлома. Например, если злоумышленник взломает аккаунт без привилегий, он не сможет установить бэкдоры в /usr/bin, — он получит доступ только к части файлов и не сможет заполучить контроль над системой. Если права пользователей не ограничены, под угрозой окажется вся система. К тому же подавляющему большинству пользователей не нужен полный доступ к системным настройкам, поэтому ограничения в правах не нарушают нормальную работу системы.

Как создать пользователя в Ubuntu 22.04

Добавление через adduser

Утилита adduser — самый простой способ. Она автоматически создаёт домашнюю директорию, назначает оболочку (/bin/bash) и запрашивает дополнительные данные (например, имя). 

sudo adduser devuser --gecos "Developer Account"

Где:

  • devuser — имя учётной записи;
  • --gecos — параметр для заполнения комментариев (обычно полное имя, рабочий телефон или другая контактная информация).

Система попросит задать пароль. Лучше использовать длинные фразы вместо коротких комбинаций. Например, можно использовать метод correct-horse-battery-staple (сочетание случайных слов).

Проверьте, создан ли пользователь:

grep username /etc/passwd

Вывод будет содержать UID, GID и путь к домашней директории (/home/devuser).

Ручная настройка через useradd

Для нестандартных сценариев (например, пользователь без домашней директории) используйте useradd:

sudo useradd -M -s /usr/sbin/nologin serviceuser

Здесь:

  • -M — не создавать /home/serviceuser,
  • -s /usr/sbin/nologin — запретить вход в систему (полезно для системных служб),
  •  serviceuser — имя.

Такой пользователь подходит для запуска демонов. Например, если Nginx работает от serviceuser, даже при уязвимости в веб-сервере злоумышленник не получит доступ к оболочке.

Группы: как управлять правами для целых команд

Группы упрощают массовую выдачу прав. Например, все разработчики могут входить в группу developers с доступом к каталогу /var/www.

Встроенные группы:

  • sudo — разрешает выполнение команд с правами root.
  • adm — доступ к логам в /var/log.
  • www-data — стандартная группа для веб-серверов.

Создание своей группы:

sudo groupadd developers
sudo usermod -aG developers devuser

Здесь используется ключ -aG, чтобы добавить пользователя в новую группу без удаления из уже существующих. Если опустить -a, пользователь devuser будет исключён из всех остальных групп.

Проверьте членство:

groups devuser

Тонкая настройка прав: chmod и sudoers

Права на файлы и директории

Разрешения в Linux задаются через три категории: владелец, группа, остальные. Они могут быть представлены в виде чисел. Например, чтобы установить права на директорию:

chmod 750 /var/www/project

Где:

  • 7 (владелец): чтение + запись + выполнение (4+2+1),
  • 5 (группа): чтение + выполнение (4+1),
  • 0 (остальные): никаких прав.

Чтобы назначить владельца и группу:

sudo chown devuser:developers /var/www/project

Теперь devuser имеет максимальные права, а другие члены его группы имеют права на чтение и выполнение. Остальные пользователи не имеют доступа.

Ограничение sudo

Полный доступ к sudo опасен. Лучше разрешать только конкретные команды. Редактируйте файл /etc/sudoers через visudo (открывает его по умолчанию), так как эта утилита проверяет синтаксис. Никогда не редактируйте /etc/sudoers напрямую через nano или vim: ошибка синтаксиса может заблокировать доступ к sudo для всех пользователей:

sudo visudo 

Добавьте строку:

devuser ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl restart nginx

Здесь:

  • ALL — на каких хостах действует правило (актуально в сетевых конфигурациях). Для локальной машины оставьте ALL.
  • (ALL) — от имени какого пользователя разрешено выполнять команды. Например, (postgres) позволит запускать команды от имени пользователя postgres. Значение (ALL) означает «от любого пользователя», включая root.
  • NOPASSWD — отключение запроса пароля. Пользователь может выполнять команды без ввода своего пароля. Используйте только для доверенных аккаунтов.
  • /usr/bin/apt — разрешает выполнять apt (управление пакетами).
  • /usr/bin/systemctl restart nginx — разрешает только перезапуск Nginx через systemctl.

Теперь devuser сможет обновлять пакеты и перезапускать Nginx, но не сможет удалить системные файлы через rm

Безопасность аккаунтов: пароли, блокировки и мониторинг

Политика паролей

Установите libpam-pwquality для сложных паролей:

sudo apt install libpam-pwquality

Настройте правила в /etc/security/pwquality.conf:

minlen = 12
difok = 5
maxrepeat = 3

Здесь:

  • minlen — минимальная длина пароля,
  • difok — минимум 5 символов, отсутствующих в старом пароле,
  • maxrepeat — не более 3 повторяющихся символов подряд.

Блокировка при подборе пароля

Используйте faillock, чтобы блокировать аккаунт после 5 неудачных попыток входа. Добавьте в /etc/pam.d/common-auth:

auth required pam_faillock.so preauth silent audit deny=5 unlock_time=600
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=600

И в /etc/pam.d/common-account:

account required pam_faillock.so

SSH: отключение root и парольной аутентификации

В /etc/ssh/sshd_config измените:

PermitRootLogin no
PasswordAuthentication no

Перезагрузите службу:

sudo systemctl restart sshd

Это разрешит вход только по ключам. Не забудьте предварительно создать ключи и добавить публичный ключ в

~/.ssh/authorized_keys

для пользователя.

Дополнительные меры защиты

Срок действия пароля

Установите максимальный срок жизни пароля (например, 90 дней):

sudo chage -M 90 devuser

Проверьте настройки:

sudo chage -l devuser

Аудит активности

Просмотр истории входов пользователей:

last

Или:

journalctl _SYSTEMD_UNIT=sshd.service

Мониторинг использования sudo:

grep sudo /var/log/auth.log

Установите auditd для детального отслеживания:

sudo apt install auditd
sudo auditctl -w /etc/sudoers -p wa -k sudoers_change

Заключение

Теперь вы знаете, как создавать пользователей в Ubuntu 22.04, управлять их правами через chmod и sudoers и защищать аккаунты от угроз. Вы научились:

  • Настраивать изолированные учётные записи для сервисов и разработчиков;
  • Ограничивать доступ к критичным командам;
  • Блокировать подбор паролей и настраивать SSH-аутентификацию. 

Регулярно проверяйте, кто входит в группу sudo (getent group sudo), и удаляйте лишние аккаунты.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях