Пользователи в Linux. Типы пользователей, управление пользователями.

Сегодня я хочу поговорить о пользователях в Linux. Мы познакомимся с типами пользователей и узнаем в каких файлах хранится связанная с ними информация. Изучим команды позволяющие управлять пользователями и изменять их данные. Рассмотрим примеры создания пользователей с различными параметрами и последующим изменениям пользовательских настроек.

Типы пользователей

В ОС Linux существует три типа пользователей:

root (от англ. root - корень) - суперпользователь, аккаунт в UNIX-подобных системах, владелец которого имеет право на выполнение всех операций без исключения. Присутствует в системе по умолчанию.

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

Обычные пользователи - учетные записи пользователей, допущенных к управлению системой. Создаются системным администратором.

Каждый пользователь помимо имени имеет числовой идентификатор пользователя UID (User IDentificator). Пользователь root имеет идентификатор 0. Системные пользователи имеют идентификаторы от 1 до 100. Обычные пользователи имеют UID от 100.

Пользователи могут объединяться в группы. Каждый пользователь обязательно входит в ту или иную группу. Группы имеют числовой идентификатор группы GID (Group IDentificator).

Информация пользователей

В системе присутствует следующая информация о каждом пользователе:

  • Имя пользователя (user name) - в рамках системы имя должно быть уникальным. В именах должны использоваться только английские буквы, числа и символы _ и . (точка).
  • Идентификационный номер пользователя (UID) - является уникальным идентификатором пользователя в системе. Система отслеживает пользователей по UID, а не по именам.
  • Идентификационный номер группы (GID) - обозначает группу, к которой относится пользователь. Каждый пользователь может принадлежать к одной или нескольким группам. Принадлежность пользователя к группе устанавливает системный администратор, чтобы иметь возможность ограничивать доступ пользователей к тем или иным ресурсам системы.
  • Пароль (password) - пароль пользователя в зашифрованном виде.
  • Полное имя (full name) - помимо системного имени может присутствовать полное имя пользователя, например фамилия и имя.
  • Домашний каталог (home directory) - каталог, в который попадает пользователь после входа в систему. Подобный каталог имеется у каждого пользователя, все пользовательские каталоги хранятся в директории /home.
  • Начальная оболочка (login shell) - командная оболочка, которая будет запускаться при входе в систему. Например, /bin/bash.

Вся информация о пользователях хранится в следующих файлах:

passwd (etc/passwd) - содержит информацию о пользователях, имеет следующий формат записи - "user_name:password:UID:GID:full_name:home_directory:login_shell". Элементы записи должны разделяться символом - ":" (двоеточие) и записываются без пробелов. Если пароль хранится в зашифрованном виде в файле /etc/shadow, то вместо пароля указывается - "x".

group (etc/group) - информация о группах, формат - "group_name:password:GID:user1,user2,user3". Элементы записи должны разделяться символом - ":" (двоеточие) записываются без пробелов. Имена пользователей записываются через запятую.

У файлов /etc/passwd и /etc/group всегда определенные права доступа: чтение и запись для root, для остальных только чтение.

shadow (etc/shadow) - в этом файле хранятся так называемые "теневые пароли", информация о паролях пользователей в зашифрованном виде. Cделано это для безопасности, так как файл /etc/passwd может читаться кем угодно, а файл /etc/shadow может прочитать только root.

gshadow (etc/gshadow) - то же самое что и shadow, только для паролей групп.

Помимо основных, в системе присутствуют дополнительные файлы.

useradd (etc/default/useradd) - файл задающий свойства "по умолчанию" для всех добавляемых пользователей. Можно просмотреть командой - useradd -D.

useradd -D

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

login.defs (/etc/login.defs) - содержит настройки для создания новых пользователей.

/etc/skel - каталог с дефолтными файлами, которые копируются в домашний каталог каждого пользователя при его создании.

Команды управления

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

useradd или adduser - добавить нового пользователя.

passwd - задать пароль для пользователя.

usermod - изменить параметры учетной записи пользователя.

userdel или deluser - удалить учетную запись пользователя.

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

groupadd - добавляет новую группу.

gpasswd - устанавливает пароль группы.

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

groupdel - удаление группы.

Обычное добавление пользователя

При создании нового пользователя автоматически указываются несколько параметров. В файле /etc/passwd, заводится запись с указанием имени пользователя, домашнего каталога, UID, GID. В каталог помещаются файлы инициализации командной оболочки. Все можно указать вручную, при помощи дополнительных опций. Список опций можно просмотреть командой useradd --help или useradd -h.

useradd -h

Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]

Options:
  -b, --base-dir БАЗ_КАТ        базовый каталог для домашнего каталога новой
                                учётной записи
  -c, --comment КОММЕНТАРИЙ     поле GECOS новой учётной записи
  -d, --home-dir ДОМ_КАТ        домашний каталог новой учётной записи
  -D, --defaults                показать или изменить настройки
                                по умолчанию для useradd
  -e, --expiredate ДАТА_УСТ     дата устаревания новой учётной записи
  -f, --inactive НЕАКТИВНОСТЬ   период неактивности пароля новой учётной записи
  -g, --gid ГРУППА              имя или ID первичной группы новой
                                учётной записи
  -G, --groups ГРУППЫ           список дополнительных групп новой
                                учётной записи
  -h, --help                    показать данное сообщение и закончить работу
  -k, --skel КАБ_ШАБ            использовать альтернативный каталог с шаблонами
  -K, --key КЛЮЧ=ЗНАЧЕНИЕ       заменить значение по умолчанию
                                из /etc/login.defs
  -l, --no-log-init             не добавлять пользователя в базы данных lastlog и
                                faillog
  -m, --create-home             создать домашний каталог пользователя
  -M, --no-create-home          не создавать домашний каталог пользователя
  -N, --no-user-group           не создавать группу с тем же именем что и у
                                пользователя
  -o, --non-unique              разрешить создание пользователей с
                                повторяющимися (не уникальными) UID
  -p, --password ПАРОЛЬ         зашифрованный пароль новой учётной записи
  -r, --system                  создать системную учётную запись
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -s, --shell ОБОЛОЧКА          регистрационная оболочка новой
                                учётной записи
  -u, --uid UID                 пользовательский ID новой учётной записи
  -U, --user-group              создать группу с тем же именем что и у
                                пользователя
  -Z, --selinux-user SEUSER     использовать указанного SEUSER для
                                пользовательского сопоставления SELin

Для создания пользователя достаточно выполнить команду useradd и указать его имя.

Синтаксис команды: useradd options username

useradd techlist

Теперь нужно задать пароль для созданного пользователя. Пароль задается командой passwd с указанием имени пользователя.

passwd techlist
Введите новый пароль UNIX: 
Повторите ввод нового пароля UNIX: 
passwd: пароль успешно обновлён

Можно задать пароль для пользователя сразу при создании, например так:

useradd -p password techlist
# password - заменить на свой пароль, пароль указывается в своем обычном виде

Проверим с какими параметрами был создан пользователь:

grep -E 'techlist' /etc/passwd
techlist:x:1001:1001::/home/techlist:/bin/bash

id techlist
uid=1001(techlist) gid=1001(techlist) группы=1001(techlist)

# Пользователь создан со следующими параметрами
user_name      techlist
password       x ( указывает что пароль хранится в зашифрованном виде)
UID            1001
GID            1001
home_directory /home/techlist
login_shell    /bin/bash

Подобным образом команда useradd работает в CentOS и других подобных ему системах, но в Debian или Ubuntu она просто создаст голого пользователя, а все остальное придется добавлять потом вручную.

Чтобы создать пользователя с подобными параметрами в Debian & Ubuntu команда useradd должна выглядеть следующим образом.

useradd -m -d /home/techlist -s /bin/bash techlist

-d - указываем домашний каталог пользователя /home/techlist
-m - указывает что домашний каталог нужно создать автоматически
-s - задает пользовательскую оболочку /bin/bash

Поэтому в Ubuntu & Debian удобнее пользоваться утилитой adduser, при ее использовании нужно будет ответить на несколько вопросов, в процессе ее выполнения будут видны все шаги по созданию нового пользователя.

adduser techlist
Добавляется пользователь «techlist» ...
Добавляется новая группа «techlist» (1001) ...
Добавляется новый пользователь «techlist» (1001) в группу «techlist» ...
Создание почтового ящика: Файл существует
Создаётся домашний каталог «/home/techlist» ...
Копирование файлов из «/etc/skel» ...
Введите новый пароль UNIX: 
Повторите ввод нового пароля UNIX: 
passwd: пароль успешно обновлён
Изменение информации о пользователе techlist
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
	Полное имя []: Techlist
	Номер комнаты []: 
	Рабочий телефон []: 
	Домашний телефон []: 
	Другое []: 
Данная информация корректна? [Y/n] y

Проверим как создался пользователь.

grep -E 'techlist' /etc/passwd
techlist:x:1001:1001:Techlist,,,:/home/techlist:/bin/bash
id techlist
uid=1001(techlist) gid=1001(techlist) группы=1001(techlist)

Пользователь создался как и в CentOS, за исключением того, что там мы не указывали полного имени "Techlist,,,", через запятые должны были быть указаны номера комнаты и телефонов, которые мы пропустили нажав на <Enter>.

Создание пользователя с домашней директорией, отличной от дефолтной директории

По умолчанию команда useradd создает домашний каталог пользователя в директории /home, имя домашнего каталога всегда совпадает с именем пользователя. Например при создании пользователя techlist, создается домашняя директория /home/techlist.

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

useradd -d /opt/tech techlist

Проверяем
grep -E 'techlist' /etc/passwd
techlist:x:1001:1001::/opt/tech:/bin/bash

Как можно видеть, пользователь techlist создался с домашним каталогом в /opt/tech.

Создание пользователя с определенным UID и GID

Каждому пользователю при его создании присваивается UID, присвоение идет по порядку: 1000, 1001 и т.д. При использовании опции -u пользователю можно задать определенный UID. Для примера создадим пользователя techlist c UID равным 777.

useradd -u 777 techlist

Проверяем
techlist:x:777:1001::/home/techlist:/bin/bash

Пользователь создался с UID равным 777, но GID был задан дефолтный - 1001, для того чтобы это исправить можно поступить следующим образом.

Сначала создадим группу techlist c GID равным 777.

groupadd -g 777 techlist

Проверяем
grep -E 'techlist' /etc/group
techlist:x:777:

Обратите внимание, группа создана но пользователей в нет, теперь можно создать пользователя с UID=777 и указать его принадлежность к группе techlist с помощью опции -g и указания GID 777.

useradd -u 777 -g 777 techlist

Проверяем
grep -E 'techlist' /etc/passwd
techlist:x:777:777::/home/techlist:/bin/bash

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

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

Допустим что новый пользователь techlist должен принадлежать к следующим группам: group_1, group_2 и group_3.

useradd -G group_1,group_2,group_3 techlist

Проверяем
id techlist
uid=1001(techlist) gid=1004(techlist) группы=1004(techlist),1001(group_1),1002(group_2),1003(group_3)

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

Иногда пользователю не требуется домашний каталог, для этого используется опция -M.

useradd -M techlist

Проверяем
cd home/techlist
-bash: cd: home/techlist: Нет такого файла или каталога

Создание пользователя с истекающим сроком действия аккаунта

По умолчанию каждый пользователь не имеет срока действия аккаунта. Срок действия можно установить задав дату истечения аккаунта. Для этого следует использовать опцию -e после которой указывается дата истечения аккаунта в формате YYYY-MM-DD. Создадим пользователя techlist с истечением аккаунта в 2017-05-01, по достижении даты аккаунт будет недействителен.

useradd -e 2017-05-01 techlist

Проверяем командой chage
chage -l techlist
Последний раз пароль был изменён				: фев 07, 2017
Срок действия пароля истекает					: никогда
Пароль будет деактивирован через				: никогда
Срок действия учётной записи истекает				: май 01, 2017
Минимальное количество дней между сменой пароля		        : 0
Максимальное количество дней между сменой пароля		: 99999
Количество дней с предупреждением перед деактивацией пароля	: 7

Вот это интересует
Срок действия учётной записи истекает				: май 01, 2017

Создание пользователя с истекающим сроком действия пароля

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

Устанавливаем срок действия пароля в течении 20-и дней, для пользователя techlist
chage -M 20 techlist

Проверяем
chage -l techlist
Последний раз пароль был изменён				: фев 07, 2017
Срок действия пароля истекает					: фев 27, 2017
Пароль будет деактивирован через				: никогда
Срок действия учётной записи истекает			        : май 01, 2017
Минимальное количество дней между сменой пароля		        : 0
Максимальное количество дней между сменой пароля		: 20
Количество дней с предупреждением перед деактивацией пароля	: 7

Вот это интересует
Максимальное количество дней между сменой пароля		: 20

Создание пользователя с указанием доп. информации

Иногда может возникнуть необходимость указать примечание для пользователя, в виде краткой заметки или указания имени и фамилии пользователя. Для этого можно воспользоваться опцией -c. Создадим пользователя vasek, с указанием имени и фамилии Vasya Pupkin.

useradd -c "Vasya Pupkin" vasek

Проверяем
grep -E 'vasek' /etc/passwd
vasek:x:1001:1001:Vasya Pupkin:/home/vasek:/bin/bash

Создание пользователя с указанием командной оболочки

Для того чтобы указать командную оболочку для пользователя используется опция -s

useradd -s /sbin/sh techlist

Проверяем
grep -E 'techlist' /etc/passwd
techlist:x:1001:1001::/home/techlist:/sbin/sh

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

Изменение существующего пользователя

Иногда может потребоваться внести некоторые изменения в аккаунт пользователя. Сделать это можно при помощи команды usermod.

Синтаксис команды: usermod options username

Команда usermod имеет дополнительные опции, посмотреть список доступных опций можно командой usermod -h.

usermod -h

  -c, --comment КОММЕНТАРИЙ     новое значение поля GECOS
  -d, --home ДОМ_КАТ            новый домашний каталог учётной записи
  -e, --expiredate ДАТА_УСТ     установить дату окончания действия
                                учётной записи в ДАТА_УСТ
  -f, --inactive НЕАКТИВНОСТЬ   установить период неактивности пароля после
                                устаревания учётной записи равным НЕАКТИВНОСТЬ
  -g, --gid ГРУППА              принудительно назначить первичную ГРУППУ
  -G, --groups ГРУППЫ           список дополнительных ГРУПП
  -a, --append                  добавить пользователя в дополнительные
                                ГРУППЫ, указанные в параметре -G не удаляя
                                пользователя из других групп
  -h, --help                    показать данное сообщение и закончить работу
  -l, --login НОВОЕ_ИМЯ         новое значение имени учётной записи
  -L, --lock                    заблокировать учётную запись
  -m, --move-home               переместить содержимое домашнего каталога в
                                новое место (использовать только вместе с -d)
  -o, --non-unique              разрешить создание учётной записи с уже
                                имеющимся (не уникальным) UID
  -p, --password ПАРОЛЬ         задать новый шифрованный пароль для
                                учётной записи
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -s, --shell ОБОЛОЧКА          новая регистрационная оболочка для учётной
                                записи
  -u, --uid UID                 новый UID для учётной записи
  -U, --unlock                  разблокировать учётную запись
  -Z, --selinux-user SEUSER     новое пользовательское сопоставление
                                SELinux для учётной записи

Рассматривать применение команды будем на примере пользователя techlist.

useradd techlist

Пользователь был создан с дефолтными настройками.

Проверяем
grep -E 'techlist' /etc/passwd
techlist:x:1001:1001::/home/techlist:/bin/bash

# Пользователь создан с дефолтными параметрами
user_name      techlist
password       x ( указывает что пароль хранится в зашифрованном виде)
UID            1001
GID            1001
home_directory /home/techlist
login_shell    /bin/bash

Добавление доп. информации пользователю

Для начала добавим имя и фамилию пользователя, опцией -c.

usermod -c "Имя Фамилия" techlist

Проверяем
grep -E 'techlist' /etc/passwd
techlist:x:1001:1001:Имя Фамилия:/home/techlist:/bin/bash

Изменение домашнего каталога пользователя

По умолчанию домашним каталогом пользователя techlist является /home/techlist. Изменим его на каталог /opt/techlist, при помощи опции -d и опцией -m перенесем в новый каталог все содержимое старого.

usermod -d /opt/techlist -m techlist

Проверяем
grep -E 'techlist' /etc/passwd
techlist:x:1001:1001:Имя Фамилия:/opt/techlist:/bin/bash

Установка даты истечения срока аккаунта

Назначим дату истечения действия аккаунта, аккаунт будет действовать до 2017-05-01, дата задается опцией -e.

usermod -e 2017-05-01 techlist

Проверяем
chage -l techlist
Последний раз пароль был изменён				: фев 07, 2017
Срок действия пароля истекает					: никогда
Пароль будет деактивирован через				: никогда
Срок действия учётной записи истекает				: май 01, 2017
Минимальное количество дней между сменой пароля		        : 0
Максимальное количество дней между сменой пароля		: 99999
Количество дней с предупреждением перед деактивацией пароля	: 7

Изменение группы пользователя

Изменим группу пользователя techlist. Сначала посмотрим к каким группам он принадлежит.

id techlist
uid=1001(techlist) gid=1001(techlist) группы=1001(techlist)

Добавим пользователя techlist к группе group_1, используя опцию -g.

usermod -g group_1 techlist

Проверяем
id techlist
uid=1001(techlist) gid=1002(group_1) группы=1002(group_1)

Как можно увидеть группа изменилась, если раньше была 1001(techlist), то теперь стала 1002(group_1).

Как добавить пользователя к новой группе без удаления из предыдущей? Для этого существует опция -G.

usermod -G group_2 techlist

Проверяем
id techlist
uid=1001(techlist) gid=1002(group_1) группы=1002(group_1),1003(group_2)

Теперь пользователь принадлежит одновременно к двум группам 1002(group_1) и 1003(group_2).

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

Для добавления пользователя в одну из дополнительных групп, одновременно используются две опции -a и -G.  В качестве дополнительной группы будет выступать группа wheel.

usermod -a -G wheel techlist

Проверяем
id techlist
uid=1001(techlist) gid=1002(group_1) группы=1002(group_1),10(wheel),1003(group_2)

Теперь пользователь techlist относится к дополнительной группе wheel, что может наделить его привилегиями выполнять root-команды.

Изменение имени пользователя

Существующему пользователю можно изменить имя, изменим имя пользователя techlist на techlist_admin, делается это опцией -l.

usermod -l techlist_admin techlist

Проверяем
id techlist
id: techlist: такого пользователя нет

id techlist_admin (а такой пользователь есть)
uid=1001(techlist_admin) gid=1002(group_1) группы=1002(group_1),10(wheel),1003(group_2)

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

Для блокировки аккаунта пользователя достаточно выполнить команду с опцией -L.

usermod -L techlist_admin

Проверяем
grep -E 'techlist_admin' /etc/shadow
techlist_admin:!$6$Xq90Qiae$lNbChGeX89upuE1vuXJtTXaC63Fddy.Xn8ebmuao9Fuid7xuJ66bMHYlWtlx6QIRltKtX1T5TYMKhyW1ZZXtQ/:17204:0:99999:7:::

Если перед зашифрованным паролем отображается восклицательный знак
это значит что пользователь заблокирован.

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

Для того чтобы разблокировать аккаунт пользователя, достаточно выполнить команду с опцией -U.

usermod -U techlist_admin

Проверяем
grep -E 'techlist_admin' /etc/shadow
techlist_admin:$6$Xq90Qiae$lNbChGeX89upuE1vuXJtTXaC63Fddy.Xn8ebmuao9Fuid7xuJ66bMHYlWtlx6QIRltKtX1T5TYMKhyW1ZZXtQ/:17204:0:99999:7:::

Восклицательного знака нет, значит пользователь разблокирован.

Изменение командной оболочки пользователя

Чтобы изменить командную оболочку пользователя, надо выполнить следующую команду с опцией -s. Изменим пользовательскую оболочку для techlist_admin с /bin/bash/ на /bin/sh/.

usermod -s /bin/sh techlist_admin

Проверяем
grep -E 'techlist_admin' /etc/passwd
techlist_admin:x:1001:1002:Имя Фамилия:/opt/techlist:/bin/sh

Изменение UID и GID пользователя

Для изменения UID пользователя используется опция -u.

usermod -u 777 techlist_admin

Проверяем
id techlist_admin
uid=777(techlist_admin) gid=1002(group_1) группы=1002(group_1),10(wheel),1003(group_2)

Для изменения GID пользователя используется опция -g.

usermod -g 777 techlist_admin

Проверяем
id techlist_admin
uid=777(techlist_admin) gid=777(newgroup) группы=777(newgroup),10(wheel),1003(group_2)

Таким образом можно управлять пользователями и изменять их по своему усмотрению.

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

Для удаления пользователей в Linux существуют две команды userdel и deluser, команда userdel используется в RedHat - подобных системах, а deluser в Debian и производных системах. Помимо deluser в Debian можно использовать и userdel.

userdel

синтаксис команды: userdel options username

Для того чтобы удалить пользователя, выполняем команду userdel. Команда userdel не удаляет пользователя если он работает в системе, сначала необходимо завершить все связанные с ним процессы. Для просмотра дополнительных опций команды userdel, используется ключ -h.

userdel -h

-f, --force                   force some actions that would fail otherwise
                              e.g. removal of user still logged in
                              or files, even if not owned by the user
-h, --help                    показать данное сообщение и закончить работу
-r, --remove                  удалить домашний каталог и почтовый ящик
-R, --root КАТ_CHROOT         каталог, в который выполняется chroot
-Z, --selinux-user            удалить все пользовательские сопоставления
                              SELinux для пользователя

-f - позволяет удалить залогиненного т.е. работающего в системе пользователя. Рекомендуется использовать только в самых крайних случаях, данная опция может привести к краху системы.

deluser

синтаксис команды: deluser options username

Для просмотра справки используется команда deluser -h.

deluser -h
deluser ПОЛЬЗОВАТЕЛЬ
  удаляет обычного учётную запись пользователя из системы
  пример: deluser mike

  --remove-home             удалить домашний каталог пользователя
                            и почтовый ящик
  --remove-all-files        удалить все файлы принадлежащие пользователю
  --backup                  сделать резервные копии файлов перед удалением.
  --backup-to <КАТ>         каталог для резервных копий файлов.
                            По умолчанию используется текущий каталог.
  --system                  удалить только если учётная запись системная

delgroup ГРУППА
deluser --group ГРУППА
  удаляет группу из системы
  пример: deluser --group students

  --system                  удалить только если группа системная
  --only-if-empty           удалить, только если в ней нет пользователей

deluser ПОЛЬЗОВАТЕЛЬ ГРУППА
  удаляет пользователя из группы
  пример: deluser mike students

общие параметры:
  --quiet | -q              не выводить информацию при работе в stdout
  --help | -h               показать справку об использовании
  --version | -v            показать версию и авторские права
  --conf | -c ФАЙЛ          использовать ФАЙЛ в качестве конфигурационного

Настройки команды находятся в файле /etc/deluser.conf, здесь задается поведение утилиты при удалении пользователя.

Значения 0 или 1, нет или да соответственно.

REMOVE_HOME = 0
Удаляет домашний каталог и почтовый ящик пользователя. 
REMOVE_ALL_FILES = 0
Удаляет все файлы принадлежащие пользователю. Если этот параметр включен
то REMOVE_HOME бесполезен.
BACKUP = 0
Если REMOVE_HOME или REMOVE_ALL_FILES активированы, то перед удалением
делается резервная копия всех файлов. Утилита создаст архив username.tar 
в каталоге указанном в BACKUP_TO.
BACKUP_TO = "."
Если BACKUP активирован, то здесь указывается каталог куда будет
производиться резервное копирование.
ONLY_IF_EMPTY = 0
Удалять группу только если в ней нет пользователей.
EXCLUDE_FSTYPES = "(proc|sysfs|usbfs|devpts|tmpfs|afs)"
Список регулярных выражений задающих файловые системы которые нужно исключить
из поиска при удалении пользовательских файлов.

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

Под правильным удалением пользователя нужно понимать определенную последовательность команд позволяющих удалить пользователя не оставив мусора и не обрушив систему.

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

Удаляемый пользователь не должен быть залогинен в системе и использовать какие либо файлы или программы.

Блокировку пользователя мы рассматривали выше.

usermod -L techlist

Убить все пользовательские процессы

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

pgrep -u techlist
1556
1558
1584
1585

Узнаем что это за процессы используя их pid.

ps -f --pid $(pgrep -u techlist)
UID        PID  PPID  C STIME TTY      STAT   TIME CMD
techlist  1556     1  0 06:21 ?        Ss     0:00 /lib/systemd/systemd --user
techlist  1558  1556  0 06:21 ?        S      0:00 (sd-pam)
techlist  1584  1554  0 06:21 ?        S      0:00 sshd: techlist@pts/3
techlist  1585  1584  0 06:21 pts/3    Ss+    0:00 -bash

Hичего серьезного нет, можно завершать все. Завершение всех процессов вышвырнет пользователя из системы, а заново войти он не сможет, ибо был заранее заблокирован.

killall -9 -u techlist

-9 - отправить сигнал завершения процессам
-u - задает пользователя

Для выполнения данной команды в системе должен быть установлен пакет psmisc

debian & ubuntu
apt-get install psmisc -y

centos и пр.
yum install psmisk -y

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

userdel -r techlist

deluser --remove-home techlist

--remove-home - указан для удаления домашнего каталога пользователя
или в /etc/deluser.conf изменить значение REMOVE_HOME = 0 на 1 REMOVE_HOME = 1

Ответить:

Please enter your comment!
Please enter your name here