Categories: Шпаргалки

Работа с пользователями в Linux

В данной инструкции рассказывается о работе с пользователями Linux через терминал (с применением командной строки).

Получение информации о пользователях

1. Список пользователей можно посмотреть в файле /etc/passwd командой:

less /etc/passwd

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

users

2. Проверить существование пользователя и увидеть его идентификатор можно с помощью команды id:

id username

Мы должны увидеть что-то на подобие:

uid=1001(username) gid=1001(username) groups=1001(username),27(sudo)

* учетная запись username существует, она находится в основной группе username и дополнительной sudo . Ее идентификатор 1001 .

3. Также мы можем получить строку о пользователе из файла /etc/passwd :

getent passwd username

Мы увидим что-то такое:

username:x:1001:1001::/home/username:/bin/sh

* наш пользовател username имеют идентификатор пользователя и группы 1001 , его домашняя директория /home/username , командная оболочка /bin/sh .

Создание

Синтаксис:

useradd <имя пользователя> [опции]

* опции не являются обязательными при создании пользователя.

Пример:

useradd remontka

* в данном примере создается учетная запись remontka .

Для учетной записи стоит сразу создать пароль:

passwd remontka

* после ввода, система попросит ввести пароль дважды.

Ключи (опции)

Ключ Описание и примеры
-b Задает базовый каталог для домашнего каталога
useradd remontka -b /var/home
-c Создает комментарий для описания учетной записи
useradd remontka -c «Пользователя для управления системой»
-d Полный путь к домашнему каталогу пользователя
useradd remontka -d /home/newuser
-D Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей
useradd remontka -Ds /bin/bash
-e Дата, после которой учетная запись устареет.
useradd remontka -e 2017-12-31
-f Число дней, после которого учетная запись с устаревшим паролем будет заблокирована
useradd remontka -f 0
-g Задает основную группу
useradd remontka -g altternativegroup
-G Задает дополнительные группы
useradd remontka -G wheel
-k Путь к источнику скелета (файлы с шаблонами для нового пользователя)
useradd remontka -k /var/skel
-m При создании пользователя создать домашний каталог
useradd remontka -m
-M Не создавать домашний каталог
useradd remontka -M
-N Не создавать основную группу с таким же именем, как у пользователя
useradd remontka -N
-o Разрешает создание учетной записи с повторяющимся UID
useradd remontka -u 15 -o
-p Задает пароль
useradd remontka -p pass
-r Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN — SYS_UID_MAX из файла /etc/login.defs)
useradd remontka -r
-R Каталог, в который выполняется chroot
useradd remontka -R /var/chroot/home
-s Путь до оболочки командной строки
useradd remontka -s /bin/csh
-u Задает UID
useradd remontka -u 666
-U Имя группы будет таким же, как у пользователя
useradd remontka -U

Актуальный список ключей можно получить командой useradd -h .

Редактирование

Синтаксис:

usermod <имя пользователя> [опции]

Пример:

usermod remontka -G wheel

* эта команда добавит пользователя remontka в группу wheel

Удаление

Синтаксис:

userdel <имя пользователя> [опции]

Пример:

userdel remontka

Блокировка

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

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

Пример:

usermod -L remontka

Чтобы разблокировать пользователя, вводим:

usermod -U <имя пользователя>

2. В некоторых системах Linux может использоваться pam-модуль tally. Он осуществляет подсчет количества неудачных попыток входа в систему. Также он может блокировать доступ при превышении данного количества.

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

pam_tally2 —user=admin

В версия постарея:

pam_tally —user=admin

Для сброса счетчика (и блокировки, если она есть) вводим:

pam_tally2 —user=admin —reset

Работа с группами

1. Добавление группы:

groupadd <группа> [опции]

2. Редактирование:

groupmod <группа> [опции]

3. Удаление группы:

groupdel <группа> [опции]

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

Выполняется через команду usermod:

usermod -a -G <группы через запятую> <пользователь>

5. Удаление из группы:

Выполняется с помощью gpasswd:

gpasswd —delete <пользователь> <группы через запятую>

Список пользователей

Посмотреть список пользователей можно в файле /etc/passwd:

cat /etc/passwd

Мы увидим что-то на подобие:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

Как правило, большая часть данных пользователей является системными — их UID меньше 1000 и больше 60000.

Более функциональная команда для отображения содержимого файла passwd — getent:

getent passwd

Можно найти пользователя по идентификатору:

getent passwd 1000

Получить список не системных пользователей:

getent passwd {1000..60000}

Получить только список логинов не системных учетных записей:

getent passwd {1000..60000} | awk -F: ‘{ print $1}’

Работа с паролями

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

1. Смена пароля для текущего пользователя:

passwd

2. Смена пароля для конкретного пользователя:

passwd remontka

* в данном случае замена будет выполняться для пользователя remontka .

3. Хэш пароля.

Пароли пользователей хранятся в файле /etc/shadow в виде хэша. Чтобы самим сгенерировать данный хэш (может понадобиться для ручного создания записи или с помощью cloud-init), выполняем команду:

mkpasswd -m sha-512

Примеры работы с учетными записями

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

useradd

1. Создать пользователя, добавить его в группу и создать домашнюю директорию:

useradd remontka -G printer -m

2. Создать учетную запись с возможностью получения привилений суперпользователя (командой sudo su ):

useradd remontka -G wheel -m

* для систем RPM.

useradd remontka -G sudo -m

* для систем DEB.

3. Создать пользователя с определенными UID и GID (соответственно идентификаторы пользователя и группы):

useradd remontka -u 900 -g 950

* группа с используемым идентификатором (в данном примере 950 ) уже должна быть создана заранее с использованием команды groupadd .

4. Создать пользователя и указать путь к домашней директории:

useradd remontka -d /home/newremontka

5. Создать учетную запись без возможности входа в систему:

useradd remontka -s /sbin/nologin

usermod

1. Потребовать сменить пароль при следующем входе в систему:

chage -d 0 remontka

2. Поменять пользователю основную группу:

usermod remontka -g kdonewgroup

3. Задать пользователю дополнительную группу с правами root:

usermod remontka -G sudo

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

usermod -a -G group remontka

* в данном примере мы добавим пользователя remontka в группу group .

5. Сменить домашнюю директорию:

usermod -d /var/www/remontka remontka

* данной командой мы меняем для пользователя remontka домашнюю директорию на /var/www/remontka .

chage

1. Автоматическая блокировка учетной записи:

chage -E 2023-05-01 remontka

* данной командой мы указали, что учетная запись remontka перестанет действовать после 1 мая 2023 года.

Чтобы посмотреть информацию о дате окончания срока действия учетной записи вводим:

chage -l remontka

Сделать учетную запись бессрочной:

chage -E -1 remontka

Возможные ошибки

sudo must be owned by uid 0 and have the setuid bit set

При попытке получить привилении командой:

sudo su

… система возвращает ошибку:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

Причина: эта ошибка возникает, когда утилита sudo не имеет правильных прав доступа на вашей системе. В частности, она происходит, когда владелец файла /usr/bin/sudo не является пользователем root или когда установлен неправильный бит setuid на файле.

Решение: убедитесь, что вы вошли в систему с учетной записью, имеющей права администратора. Это можно сделать, войдя напрямую под пользователем root.

Выполняем команду, чтобы проверить права файла sudo:

ls -l /usr/bin/sudo

Если владелец не является пользователем root, выполните следующую команду, чтобы изменить владельца файла:

chown root:root /usr/bin/sudo

Убедитесь, что установлен правильный бит setuid на файле sudo, выполнив следующую команду:

chmod u+s /usr/bin/sudo

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago