Home » Как добавлять и удалять пользователей в CentOS 8
Как добавлять и удалять пользователей в CentOS 8

Как добавлять и удалять пользователей в CentOS 8

Управление пользователями в CentOS 8 — это базовый навык каждого системного администратора. Хотя большинство считает эту задачу тривиальной, в реальности есть множество нюансов, которые могут сильно усложнить жизнь. В этой статье разберём не только стандартные команды, но и продвинутые техники, автоматизацию и подводные камни, с которыми вы обязательно столкнётесь при работе с пользователями.

Независимо от того, настраиваете ли вы VPS для веб-проекта или управляете выделенным сервером для корпоративных нужд, правильное управление пользователями — это основа безопасности и стабильности системы.

Как работает система пользователей в CentOS 8

Прежде чем копипастить команды, давайте разберёмся с архитектурой. В Linux каждый пользователь имеет уникальный идентификатор (UID), принадлежит к одной или нескольким группам (GID), и его данные хранятся в нескольких ключевых файлах:

  • /etc/passwd — основная информация о пользователях
  • /etc/shadow — хеши паролей и настройки безопасности
  • /etc/group — информация о группах
  • /etc/gshadow — пароли групп и их администраторы

В CentOS 8 используется диапазон UID от 1000 для обычных пользователей, а системные аккаунты занимают диапазон от 1 до 999.

Добавление пользователей: от простого к сложному

Самый простой способ добавить пользователя — использовать команду useradd:

# Базовое добавление пользователя
sudo useradd username

# Добавление с созданием домашней директории
sudo useradd -m username

# Добавление с указанием shell
sudo useradd -m -s /bin/bash username

# Добавление с указанием группы
sudo useradd -m -g users -s /bin/bash username

# Добавление с дополнительными группами
sudo useradd -m -g users -G wheel,docker username

# Добавление с указанием UID
sudo useradd -m -u 1500 username

# Добавление с комментарием
sudo useradd -m -c "John Doe" username

Но это только верхушка айсберга. Вот продвинутые варианты:

# Добавление пользователя с ограниченным сроком действия
sudo useradd -m -e 2024-12-31 username

# Создание системного пользователя (без домашней директории)
sudo useradd -r serviceuser

# Создание пользователя с заблокированным паролем
sudo useradd -m -L username

# Создание пользователя с предустановленным паролем
sudo useradd -m -p $(openssl passwd -1 'password') username

Практические кейсы и примеры

Рассмотрим типичные сценарии, с которыми вы столкнётесь в реальной работе:

Сценарий Команда Комментарий
Веб-разработчик sudo useradd -m -G wheel,apache -s /bin/bash developer Доступ к sudo и файлам Apache
Сервисный аккаунт sudo useradd -r -s /bin/false nginx Без shell и домашней директории
Временный пользователь sudo useradd -m -e 2024-06-01 temp_user Автоматическое отключение через месяц
Контейнерный пользователь sudo useradd -m -G docker containeruser Для работы с Docker без sudo

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

Удаление пользователя — это не просто userdel username. Нужно учитывать множество факторов:

# Простое удаление (данные остаются)
sudo userdel username

# Удаление с домашней директорией
sudo userdel -r username

# Принудительное удаление (даже если пользователь залогинен)
sudo userdel -f username

# Удаление с домашней директорией и почтовым спулом
sudo userdel -r -f username

Но перед удалением обязательно проверьте:

# Активные процессы пользователя
sudo ps -u username

# Файлы пользователя в системе
sudo find / -user username -type f 2>/dev/null

# Cron-задачи
sudo crontab -u username -l

# Активные соединения
sudo lsof -u username

Автоматизация и скрипты

Для массового управления пользователями можно создать удобные скрипты:

#!/bin/bash
# Скрипт для массового добавления пользователей

USERS_FILE="/tmp/users.txt"
DEFAULT_PASSWORD="TempPass123!"

while IFS=',' read -r username fullname groups; do
    # Создание пользователя
    sudo useradd -m -c "$fullname" -G "$groups" "$username"
    
    # Установка пароля
    echo "$username:$DEFAULT_PASSWORD" | sudo chpasswd
    
    # Принудительная смена пароля при первом входе
    sudo chage -d 0 "$username"
    
    echo "Пользователь $username создан"
done < "$USERS_FILE"

Пример файла пользователей:

# users.txt
john,John Doe,wheel,developers
jane,Jane Smith,developers
bob,Bob Johnson,wheel,docker

Продвинутые техники и хитрости

Несколько полезных трюков от опытных админов:

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

# Создание шаблона в /etc/skel
sudo mkdir -p /etc/skel/.config
sudo cp /path/to/default/config /etc/skel/.config/

# Все новые пользователи получат этот шаблон
sudo useradd -m newuser

Массовое удаление пользователей

# Удаление всех пользователей с UID больше 2000
awk -F: '$3 > 2000 { print $1 }' /etc/passwd | while read user; do
    sudo userdel -r "$user"
done

Создание пользователя с предустановленным SSH-ключом

#!/bin/bash
USERNAME="developer"
SSH_KEY="ssh-rsa AAAAB3NzaC1yc2E..."

sudo useradd -m -s /bin/bash "$USERNAME"
sudo mkdir -p /home/"$USERNAME"/.ssh
echo "$SSH_KEY" | sudo tee /home/"$USERNAME"/.ssh/authorized_keys
sudo chmod 700 /home/"$USERNAME"/.ssh
sudo chmod 600 /home/"$USERNAME"/.ssh/authorized_keys
sudo chown -R "$USERNAME":"$USERNAME" /home/"$USERNAME"/.ssh

Альтернативные инструменты

Помимо стандартных команд, существуют альтернативные решения:

  • adduser — более дружелюбная оболочка для useradd (в некоторых дистрибутивах)
  • system-config-users — графический интерфейс для управления пользователями
  • Ansible — для автоматизации управления пользователями через модуль user
  • LDAP/Active Directory — для централизованного управления в корпоративной среде

Официальная документация доступна на Red Hat Customer Portal.

Мониторинг и аудит

Важно отслеживать изменения в системе пользователей:

# Логи аутентификации
sudo tail -f /var/log/secure

# Последние входы пользователей
lastlog

# Активные сессии
who

# История команд sudo
sudo cat /var/log/sudo

# Создание алерта на добавление пользователя
echo 'useradd' >> /etc/rsyslog.d/user-monitor.conf

Безопасность и рекомендации

Несколько критически важных моментов:

  • Никогда не удаляйте системных пользователей (UID < 1000)
  • Всегда делайте бэкап файлов /etc/passwd и /etc/shadow перед массовыми операциями
  • Используйте сильные пароли и принудительную смену при первом входе
  • Регулярно аудируйте список активных пользователей
  • Отключайте неактивные аккаунты вместо удаления
# Отключение пользователя вместо удаления
sudo usermod -L username
sudo usermod -s /bin/false username

# Блокировка с датой истечения
sudo usermod -L -e 1 username

Интеграция с современными технологиями

В эпоху DevOps управление пользователями часто интегрируется с:

  • Docker — создание пользователей для контейнеров
  • Kubernetes — ServiceAccounts и RBAC
  • CI/CD pipelines — автоматическое создание пользователей для деплоя
  • Terraform — инфраструктура как код включает управление пользователями

Пример Ansible playbook для управления пользователями:

---
- name: Manage users
  hosts: servers
  become: yes
  
  vars:
    users:
      - { name: 'developer', groups: 'wheel,docker' }
      - { name: 'tester', groups: 'testers' }
  
  tasks:
    - name: Create users
      user:
        name: "{{ item.name }}"
        groups: "{{ item.groups }}"
        state: present
        createhome: yes
      loop: "{{ users }}"

Заключение и рекомендации

Управление пользователями в CentOS 8 — это не просто набор команд, а комплексная система, которая требует понимания архитектуры, безопасности и автоматизации. Начинайте с базовых команд useradd и userdel, но не забывайте про продвинутые возможности и автоматизацию.

Основные принципы, которые стоит помнить:

  • Планируйте структуру — определите политику именования и группировки заранее
  • Автоматизируйте — используйте скрипты и инструменты оркестрации
  • Мониторьте — ведите аудит изменений и активности
  • Защищайте — используйте принципы минимальных привилегий

Правильно настроенная система пользователей — это фундамент для масштабируемой и безопасной инфраструктуры. Инвестируйте время в изучение этих основ, и они многократно окупятся в будущем.


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked