Содержание

Пользователи и пароли в Linux

Введение

Эта статья описывает управление пользователями и политиками паролей в дистрибутивах ROSA Хром/Fresh.

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

Для создания пользователя выполните:

sudo useradd username

Домашним каталогом пользователя будет /home/username.

Установите пароль новому пользователю:

sudo passwd username

При вводе пароль не отображается (защита обратной связи).

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

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

sudo userdel username

При этом удаление произойдет безопасно: домашняя директория пользователя будет сохранена на диске, а его файлы будут доступны для администратора. Если вы хотите удалить пользователя и его файлы с диска, выполните команду с ключом -r:

sudo userdel -r username

Создание группы пользователей

sudo groupadd groupname

где groupname — имя группы.

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

sudo usermoad -a -G groupname username

где groupname — имя группы, в которую добавить пользователя username.

Числовые идентификаторы пользователей

Каждый пользователь в Linux имеет уникальный идентификатор (UID) и групповой идентификатор (GID). UID - это числовой идентификатор пользователя, который используется для определения прав доступа к файлам и каталогам. GID - это числовой идентификатор группы, к которой принадлежит пользователь.

Чтобы узнать UID и GID пользователя, выполните команду id:

id username

При создании нового пользователя система автоматически назначает ему UID. Однако, если вы хотите назначить пользователю конкретный UID, вы можете использовать команду useradd с опцией -u. Например:

sudo useradd -u 1001 username

В этом примере мы создаем пользователя username и назначаем ему UID 1001.

Файлы с информацией о пользователях

Информация о локальных пользователях и группах хранится в файлах: /etc/shadow, /etc/passwd и /etc/group. Утилиты useradd, usermod и др. вносят изменения в эти файлы, а NSS-модуль files читает их.

/etc/shadow

Файл /etc/shadow содержит зашифрованные пароли пользователей. Этот файл доступен только для чтения и записи администратору системы (обычному пользователю доступ к этому файлу закрыт). Это позволяет предотвратить несанкционированный доступ к паролям пользователей.

Формат файла /etc/shadow следующий:

username:password:lastchanged:minimum_age:maximum_age:warning_days:inactive_days:expire_date:reserved

где:

/etc/passwd

Файл /etc/passwd содержит основную информацию о пользователях. Каждая строка в файле представляет одного пользователя и имеет следующий формат:

username:password:UID:GID:comment:home_directory:default_shell

где:

/etc/group

Файл /etc/group содержит информацию о группах пользователей. Каждая строка в файле представляет одну группу и имеет следующий формат:

groupname:password:GID:user_list

где:

Задание срока действия пароля пользователя

В ROSA Linux можно настроить срок действия пароля пользователя, чтобы обеспечить безопасность системы. Для этого можно использовать команду chage. Например, чтобы задать срок действия пароля пользователя на 90 дней, выполните следующую команду:

sudo chage -M 90 username

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

Блокировка учетной записи

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

sudo usermod -L username

Эта команда заблокирует учетную запись пользователя username и запретит ему доступ к системе. Для разблокировки учетной записи выполните команду usermod с ключом -U:

sudo usermod -U username

Принудительная смена пароля пользователя при следующем входе

Чтобы пользователь сменил свой пароль при следующем входе в систему, выполните команду passwd с опцией -e:

sudo passwd -e username

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

Настройка pwquality

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

pwquality обычно предустановлена в дистрибутивах ROSA, при необходимости установить можно так:

sudo dnf install pam_pwquality libpwquality-common libpwquality-tools

PAM-модуль pam_pwquality прописан в конфигурационных файлах /etc/pam.d/* из коробки в большинстве дистрибутивов ROSa, но может быть при необходимости добавлен в них вручную.

После установки вы можете отредактировать файл /etc/security/pwquality.conf, чтобы настроить параметры проверки безопасности паролей. Например, чтобы задать минимальную длину пароля в 8 символов, выполните следующие шаги:

Откройте файл /etc/security/pwquality.conf для редактирования:

sudo nano /etc/security/pwquality.conf

Найдите строку, которая начинается с minlen и измените ее значение на 8:

minlen = 8

Сохраните изменения и закройте файл.

Этот и другие параметры описаны в man pwquality.conf.

Также вы можете использовать команду pwpolicy, чтобы настроить параметры безопасности паролей на уровне конкретного пользователя или группы пользователей. Например, чтобы задать максимальное время жизни пароля для пользователя username в 90 дней, выполните следующие шаги:

Выполните команду pwpolicy с опцией -u и указанием имени пользователя:

sudo pwpolicy -u username -setpolicy "maxMinutesUntilChangePassword=129600"

При этом максимальное время жизни пароля для пользователя username будет установлено на 90 дней (129600 минут).

Блокирование консольного сеанса по неактивности

Рассмотрим настройки автоматической блокировки консольного сеанса по неактивности.

Установим необходимые пакеты:

sudo dnf install tmux vlock

Файл /etc/tmux.conf приведем к следующему виду:

set -g lock-command "vlock -c"
set -g lock-after-time 900
bind L lock-session
set -g mouse on
set-option -g history-limit 30000

В начало файла /etc/bashrc вставьте следующий код:

# $PS1 is set if it is an interactive shell
# $XDG_SESSION_TYPE is set by pam_systemd
if [ -n "$PS1" ] &&
   [ "$XDG_SESSION_TYPE" = tty ] &&
   [ -z "$TMUX" ] &&
   ! [[ "$TERM" =~ screen ]] &&
   ! [[ "$TERM" =~ tmux ]] &&
   command -v tmux >/dev/null 2>&1
then
   exec tmux
fi

Теперь при входе в TTY и по SSH консоль будет блокироваться через 900 секунд неактивности, для разблокировки нужно будет ввести пароль, когда консоль заблокирована, ее содержимое не будет видно. При работе внутри графической сессии предполагается работа блокировщика экрана вместо блокировщика консоли.