Как создать пользователя в Linux?

«Как создать пользователя в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для создания пользователя в Linux используется команда useradd. В DevOps-практике это часто делается через системы управления конфигурацией (Ansible, Puppet) или скрипты инициализации инфраструктуры.

Базовый пример через командную строку:

# Создать пользователя с домашним каталогом
sudo useradd -m username

# Установить пароль
sudo passwd username

Ключевые опции useradd для DevOps:

  • -m — создать домашний каталог (/home/username). Критично для развертывания пользовательских конфигов.
  • -s /bin/bash — задать оболочку (например, /bin/bash или /sbin/nologin для служебных аккаунтов).
  • -G sudo,docker,developers — добавить пользователя в дополнительные группы для предоставления прав (например, sudo для администрирования, docker для работы с контейнерами).
  • -p — задать зашифрованный пароль (используется в автоматических сценариях, но с осторожностью из-за безопасности).

Пример создания пользователя для CI/CD-агента:

sudo useradd -m -s /bin/bash -G docker,jenkins ci-user
# Устанавливаем пароль без интерактивного ввода (хэш из /etc/shadow)
echo 'ci-user:$6$rounds=656000$salt$hashed_password' | sudo chpasswd -e

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

sudo userdel -r username  # Ключ -r удаляет домашний каталог и почту

DevOps-контекст: В реальных проектах создание пользователей автоматизируется. Например, в Ansible это выглядит так:

- name: Create application user
  user:
    name: appuser
    shell: /bin/bash
    groups: docker
    append: yes
    generate_ssh_key: yes
    ssh_key_bits: 2048