ВНИМАНИЕ! Перед прочтением данной статьи ознакомьтесь с предыдущей частью об управлении пользователями по этой ссылке.

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

Создание учетной записи

Чтобы добавить в систему нового пользователя выполним команду useradd [опции] имя_пользователя.

Например, команда useradd new_user создаст следующее:

  • новую учетную запись new_user
  • новую группу new_user
  • домашний каталог /home/new_user
  • скопирует все файлы из каталога /etc/skel
  • добавит запись в файлы /etc/passwd и  /etc/shadow

Если есть желание, то все операции можно провести вручную без команды useradd.

В некоторых дистрибутивах (Ubuntu, Mint, Kali) данная команда не выполняет все названные действия, поэтому лучше использовать другую команду — adduser [опции] имя_пользователя

Система установит диалог с пользователем, где пользователю надо лишь дать нужный ответ и все вышеназванные операции будут осуществлены. При выполнении команды adduser рекомендуется использовать опцию —force-badname:

adduser  —force-badname имя_пользователя

Итак, пользователь создан. Взглянем на файлы /etc/passwd и /etc/shadow.

Когда аккаунт создается командой командой useradd необходимо еще создать пароль, иначе учетная запись будет не активна. Для этого применим команду:

passwd [опции] имя_пользователя

Система попросит 2 раза ввести пароль.

После этого аккаунт будет активен и готов к использованию.

А можно при создании новой учетной записи создать домашний каталог в совершенно другом месте?

Конечно, для этого воспользуемся опцией -d или —home-dir и после нее укажем путь, где нужно создать каталог — useradd -d /usr/vasya vasya

А можно создать пользователя без домашнего каталога?

И такое возможно c опцией -M или —no-create-home — useradd -M vasya

При входе в систему его “якобы родным” каталогом будет /root.

С помощью команды useradd можно добавлять комментарии к аккаунту, устанавливать срок действия и другое. Делается это на момент создания учетной записи.

Чтобы узнать какие опции поддерживаются достаточно просто ввести команду useradd и введи ENTER. Система отобразит список опций.

Подобный список можно получить для всех команд, которые мы рассмотрим далее. Следует знать, что при использовании одновременно нескольких опций их нельзя объединять между собой, как это можно в таких командах, как lscp, rm, mkdir и так далее. Необходимо сначала указать опцию затем аргумент, после этого указываем вторую опцию, потом аргумент к данной опции и так далее.

Например, создадим учетную запись test, которая будет иметь домашний каталог в /media/test, аккаунт будет действителен до 1 января 2017 г. и не будет состоять ни в одной группе:

useradd -d /media/test  -e 2017-01-01 -N test

 

Создание групп

В процессе работы возникает необходимость в создании определенных групп, обладающих различными правами и привилегиями. В этом уроке поговорим о создании и управлении группами. Права будем назначать в одном из следующих уроков. Для создания группы достаточно выполнить команду groupadd название_группы.

Например, создадим группу Class: groupadd Class.

После этого в файл /etc/group будет добавлена соответствующая запись о группе.

В данной группе пока не состоит ни один пользователь. Чтобы пользователи могли сами добавляться в эту группу установим пароль:

gpasswd Class

А как пользователи могут сами добавиться в группу?

Для этого пользователю достаточно выполнить команду newgrp название_группы.

Например, добавим нашего текущего пользователя student в группу Class. Однако, если взглянуть на файлы /etc/group и /etc/gshadow, то они почему-то не содержат никакой записи о том, что student входит в данную группу. Почему так?

Дело в том, что команда newgrp в текущем сеансе меняет ID текущей группы данного пользователя на ID запрошенной группы, то есть пользователь становится временным челном группы и после перезагрузки системы все вернется в прежнее состояние. Чтобы убедиться в этом выполним команду id до команды newgrp и потом уже после ее выполнения. Данная команда выдаст нам UID и GID текущего пользователя.

Группа по умолчанию поменялась. Явление это временное, то есть существует только в оперативной памяти, поэтому в файлах нет никакой записи.

А как добавить пользователя в группу на постоянной основе?

Есть 2 способа:

  • редактированием файлов /etc/group, /etc/gshadow
  • командами usermod и gpasswd (об этом немного позже)

Изменение параметров аккаунта

Иногда требуется поменять некоторые параметры учетных записей. Рассмотрим некоторые из них.

Добавление пользователя в группу: 

usermod -G имя_группы  имя_пользователя

или

usermod —groups имя_группы  имя_пользователя

Существует и другая команда: 

gpasswd -a имя_пользователя  имя_группы

или

gpasswd —add имя_пользователя  имя_группы

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

userdel имя_пользователя

При таком способе удаляется учетная запись, но сохраняется домашний каталог и почтовые файлы пользователя. Чтобы их тоже удалить используем опцию -r (—remove):

userdel -r имя_пользователя

Иногда система не позволяет удалить аккаунт. В таких случая воспользуемся опций -f (—force): 

userdel -f  имя_пользователя

Изменение пароля: 

Пароль могут изменить администратор или сам пользователь. Если это делает администратор, то команда будет такой:

passwd имя_пользователя

Если это делает пользователь, то достаточно ввести passwd.

А можно удалить пароль и работать вообще без него?

Вообще-то это немного проблематично, но возможно. В некоторых дистрибутивах (Ubuntu, Kalo, Mint) имеется специальная группа nopasswdlogin. Пользователи, состоящие в данной группе могут входить в систему, не имея пароля. Пароль можно удалить в самом файле, а также командой passwd -d имя_пользователя.

Затем добавим пользователя в группу nopasswdlogin: 

usermod -aG nopasswdlogin имя_пользователя

В дистрибутивах Fedora, Centos это достигается следующими командами: 

passwd -d имя_пользователя

passwd -u -f  имя_пользователя

Либо вручную удалим все знаки в поле пароля файла /etc/shadow. Аналогом команды passwd является команда chage.

Блокирование пользователя:

Для блокировки пользователя воспользуемся опцией -L (—lock), для разблокировки —  -U (—unlock):

usermod -L имя_пользователя

А как узнать, что пользователь заблокирован?

Для этого указываем опцию -S (—status):

passwd -S имя_пользователя

В различных дистрибутивах вывод команды может отличаться.

Изменение параметров групп:

Для изменения параметров группы используются команда groupmod [опции] имя_группы. 

Для удаления группы — groupdel [опции] имя_группы

Для изменения пароля и других параметров — gpasswd [опции] имя_группы

Получение информации об аккаунтах и группах:

Полезными будут следующие информативные команды:

id — показывает UID, GID текущего пользователя

groups — показывает в каких группах состоит текущий пользователь

finger — краткая информация о пользователях (в некоторых дистрибутивах не установлена)

 

Итак, вот список команд, которые мы изучили:

useradd имя_пользователя — создание нового пользователя

useradd -d домашний_каталог  имя_пользователя — создание нового пользователя с указанным домашним каталогом

useradd -M имя_пользователя — создание нового пользователя без домашнего каталога

useradd -e дата имя_пользователя — создание нового пользователя с ограниченным сроком действия

useradd -N имя_пользователя — создание нового пользователя, не принадлежащему ни одной группе

adduser —force-badname имя_пользователя — интерактивное создание пользователя

passwd имя_пользователя — смена пароля администратором

passwd — смена пароля текущим пользователем

groupadd имя_группы — создание новой группы

gpasswd имя_группы — смена пароля заданной группы

newgrp имя_группы — временное добавление текущего пользователя в группу

id — информация о UID и GID текущего пользователя

usermod -G имя_группы  имя_пользователя — добавление пользователя в группу

gpasswd -a имя_пользователя  имя_группы — добавление пользователя в группу

userdel имя_пользователя — удаление пользователя

userdel -r имя_пользователя — удаление пользователя вместе домашним каталогом

userdel -f  имя_пользователя — принудительное удаление пользователя

passwd -d имя_пользователя — удаление пароля заданного пользователя

usermod -L имя_пользователя — блокирование пользователя

usermod -U имя_пользователя — разблокирование пользователя

groupdel имя_группы — удаление группы

groupmod  — изменение параметров группы

groups — показывает список  групп, в которых состоит текущий пользователь

finger — персональная информация о текущем пользователе