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

Для добавления пользователя в систему используется команда useradd username или adduser username. Какую именно команду выполнять зависит от ОС. Также при выполнении этой команды создаётся и домашняя директория для пользователя и основная группа пользователя. Для установления пароля пользователя нужно выполнить отдельную команду passwd username. Пока не зададите пароль пользователь не сможет войти в систему.

sudo useradd admin2 || sudo adduser admin2
sudo passwd admin2 
sudo tail /etc/passwd

Также при создании пользователя вы можете использовать опции, которые позволят задать дополнительные параметры.

  • Добавим описание для пользователя
    sudo useradd admin2 -c "my test user"
    
  • Добавим время жизни пользователя
    sudo useradd admin2 -e 2025-01-01
    
  • Укажем UID пользователя
    sudo useradd admin2 -u 1005
    

Редактирование пользователя

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

  • Добавим описание для пользователя
    sudo usermod admin2 -c "my test user"
    
  • Изменим основную группу пользователя (старая группа затирается)
    sudo usermod admin2 -g admin
    
  • Добавим дополнительные группы
    sudo usermod admin2 -a -G admin,admin2,wheel
    
  • Заблокируем пользователя
    sudo usermod admin2 -L
    
  • Разблокируем пользователя
    sudo usermod admin2 -U
    
  • Сменим оболочку shell
    sudo usermod admin2 -c /bin/zsh
    
  • Сменим uid пользователя
    sudo usermod user3 -r 1005
    

Все опции команды вы можете получить выполнив man usermod.

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

Для того чтобы удалить пользователя, не удаляя при этом его домашнюю директорию выполняем userdel username.

Для того чтобы удалить пользователя и его домашнюю директорию выполняем userdel -r username.

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

Если вы удалите пользователя без удаления папки освободится UID, при этом владелец файлов в итоге назначается по UID. Т.е. новый пользователь может получить UID, который принадлежал удаленному пользователю, и он будет иметь доступ к не удалённым данным.

sudo useradd user2
sudo ls -l /home/
drwx------. 2 user2  user2   62 Nov  2 14:56 user2
sudo userdel user2
sudo ls -l /home/
drwx------. 2   1002   1002  62 Nov  2 14:56 user2
sudo useradd user3
sudo ls -l /home/
drwx------. 2 user3  user3   62 Nov  2 14:56 user2
drwx------. 2 user3  user3   62 Nov  2 14:59 user3

Для того чтобы найти все директорию у которых отсутствуют владельцы можно воспользоваться командой sudo find / -nouser -o -nogroup.

Задать uid для пользователя

Чтобы такой ситуации как сверху не происходило можно при создании пользователя сразу указать его uid.

sudo useradd user3 -r 1005

Если пользователь уже создан, то не беда можно использовать usermod.

sudo usermod user3 -r 1005

Задать пароль пользователя

Я уже упоминал что для установки пароля пользователю используется passwd username. Нужно дважды повторить свой пароль.

Верификация

Как вы успели заметить некоторые команды не выводят ничего о итоге выполнения. Так вот чтобы проверить как выполнилась команда можно выполнить echo $?. Выводом будет код результата (exit code), просмотреть что значит exit code можно используя man.

man passwd
EXIT CODE
       The passwd command exits with the following codes:
       0         success
       1         passwd/libuser operation failed
       2         unknown user

UID диапазоны

О том что такое UID можно почитать тут.

В Redhat дистрибутивах для каждого типа пользователей зарезервированы диапазоны выдаваемого UID.

  • 0 - используется для root
  • 1-200 - для системных пользователей (system user) именно для сервисов Redhat
  • 201-999 - для системных пользователей (system user) сторонних приложений
  • 1000+ - для обычных пользователей