Здесь будут рассмотрены команды useradd, userdel, usermod, groupadd, groupdel, groupmod, id и chage, а также описаны наиболее необходимые опции.
Команда useradd
$ useradd options username
Пользователь будет создан в заблокированном состоянии, для разблокировки достаточно сменить ему пароль с помощью команды passwd.
Данные и параметры всех пользователях хранятся в файле /etc/passwd. Каждая строка — настройки отдельного пользователя, состоящие из 7 полей и разделенные двоеточием.
$ useradd finist $ cat /etc/passwd | grep finist finist:x:503:504::/home/finist:/bin/bash
Разберем эти настройки слева направо.
Логин:Пароль:UserID:GroupID:Info:HomeDir:Shell
Логин — имя пользователя
Пароль — вместо него стоит х, пароль хранится в зашифрованном виде в /etc/shadow
UserID — уникальный идентификатор пользователя. В стандартном варианте находится в диапазоне от 100 до 999.
GroupID — уникальный идентификатор группы, хранится в /etc/group
Info — дополнительная информация о пользователе
HomeDir — путь до каталога пользователя относительно корневой директории
Ключи команды useradd
-d позволяет задать путь к нестандартному размещению домашнего каталога
$ useradd -d /public/user1 testuser
-g назначает пользователю groupid
-u назначает пользователю userid
Проверить текущие gid и uid можно с помощью команды id
$ useradd -g 500 -u 999 testuser $ cat /etc/passwd | grep testuser testuser:x:999:500::/home/testuser:/bin/bash $ id testuser uid=999(testuser) gid=500(testuser)
-G добавляет пользователя сразу в несколько групп
$ useradd -G programmers,admins testuser
-e позволяет ограничить время работы аккаунта,
-f задает срок действия пароля, в днях
Для уже созданных пользователей можно задать эти ограничения с помощью команды chage, а для просмотра статуса используйте chage -l.
$ useradd -e 2017-01-01 -f 30 testuser $ chage testuser
-M создает пользователя без домашнего каталога
$ useradd -M testuser
-c добавляет комментарии в раздел info
$ useradd -c "Test User" testuser $ cat /etc/password | grep testuser testuser:x:503:504:Test User:/home/testuser:/bin/bash
-s Задает оболочку пользователя
$ useradd -s /bin/sh testuser
Команда userdel
Команда userdel удаляет пользователя из системы. Она не может быть выполнена когда пользователь работает в системе, либо есть процессы, запущенные от имени пользователя.
$ userdel testuser
По умолчанию домашний каталог пользователя остается в системе. Для удаления домашнего каталога вместе с учетной записью пользователя используется ключ -r.
$ userdel -r testuser
Команда usermod
Usermod используется для внесения изменений в учетную запись пользователя. Используется только с ключами.
-d Переносит домашний каталог пользователя. Используется вместе с -m. Сначала указывается путь до нового каталога, затем имя пользователя.
$ usermod -d /home/newfolder -m testuser
-l Позволяет изменить имя пользователя (логин)
$ usermod -l testuser newuser
-u Изменяет uid пользователя
$ usermod -u 654 testuser $ getent passwd | grep testuser testuser:x:654:504::/home/testuser:/bin/bash
Команда groupadd
Используется для создания групп. Возможные ключи:
-g Позволяет задать gid для группы (500 и больше)
$ groupadd -g 599 devops $ getent group | grep devops devops:x:599:
-r Создает системную группу (gid=499 и меньше)
$ groupadd -r sysgroup $ cat /etc/groups | grep sysgroup sysgroup:x:498:
-f Заканчивает работу без ошибки, если группа уже создана. В сочетании с -g останавливает работу, если заданный gid уже существует.
$ groupadd sysgroup groupadd: группа «sysgroup» уже существует $ groupadd -f sysgroup $
Команда groupdel
Используется для удаления группы
$ groupdel sysgroup
Команда groupmod
Вносит изменения в параметры группы. Используется только с ключами.
-n Меняет имя группы
$ getent group | grep sysgroup sysgroup:x:600: $ groupmod sysgroup -n testgroup $ getent group | grep testgroup testgroup:x:600:
Существуют редко используемые ключи, для их просмотра используйте ключ -h
$ groupmod -h