Средства идентификации и аутентификации предоставляют возможности
идентификации объектов доступа, идентификации и проверки подлинности субъектов
доступа при входе в систему и при доступе к защищаемым объектам, управления
идентификаторами, в том числе их создания, присвоения и уничтожения, управления
аутентификационными данными, в том числе их инициализации, защищенного хранения,
блокирования и разблокирования, проверки соответствия аутентификационной информации
заданной метрике качества, защиты обратной связи при вводе аутентификационной
информации, а также другие возможности.
Для добавления нового пользователя используется утилита useradd. Она позволяет добавить учетную запись нового пользователя. Режимы ее
работы и выполняемые функции задаются набором опций, перечисленных в таблице:
Любая текстовая строка.
Используется как поле для имени и фамилии пользователя, длина этого поля не должна превосходить 128 символов.
-b,--base-dir
Базовый системный каталог по умолчанию, если не указан другой каталог.
Базовый каталог объединяется с именем учётной записи для определения домашнего каталога.
-d,--home
Для создаваемого пользователя в качестве начального каталога будет использован базовый каталог.
По умолчанию это значение получается объединением имени пользователя с базовым каталогом и используется как имя домашнего каталога.
-d,--home-dir
Задать домашний каталог нового пользователя.
Если данная опция не используется, то в качестве домашнего каталога выбирается каталог типа /базовый_системный_каталог/имя_пользователя.
-D,--defaults
Вывести значения стандартных опций.
-e,--expiredate
Дата окончания срока действия учётной записи пользователя. Задаётся в формате ГГГГ-ММ-ДД.
--f,--inactive
Число дней, которые должны пройти после окончания срока действия пароля, чтобы учётная запись заблокировалась.
Если указано значение 0, то учётная запись блокируется сразу после окончания срока действия пароля,
а при значении -1 данная возможность не используется. По умолчанию используется значение -1.
-g,--gid
Название группы нового пользователя или её идентификационный номер.
Указываемое название группы или её номер должны существовать в системе.
-G,--groups
Список дополнительных групп, в которых числится пользователь.
Перечисление групп осуществляется через запятую без пробелов.
На указанные группы действуют те же ограничения, что и для группы, указанной в опции -g.
-m,--create-home
Создает начальный домашний каталог нового пользователя, если он ещё не существует.
Если каталог уже существует, добавляемый пользователь должен иметь права на доступ к указанному каталогу.
-M,--no-create-home
Позволяет не создавать домашний каталог нового пользователя.
-K,--key
Используется для изменения значений по умолчанию для параметров, хранимых в конфигурационном файле /etc/login.def.
-N,--no-user-group
Позволяет добавить нового пользователя в группу, указанную в опции -g или заданную по умолчанию в конфигурационном файле /etc/default/useradd,
не создавая группу, название которой совпадает с именем нового пользователя.
Если опции -g, -N, -U не указаны, то настройки групп по умолчанию определяются в конфигурационном файле /etc/login.defs.
-o,--non-unique
Позволяет создать учётную запись с уже имеющимся, не уникальным идентификатором.
-p,--password
Позволяет задать новый пароль для учётной записи.
-r,--system
Позволяет создать системную учётную запись.
По умолчанию для данной категории учетных записей домашний каталог не создаётся вне зависимости от значения соответствующего параметра конфигурационного файла /etc/login.defs.
Для создания домашнего каталога системного пользователя необходимо вместе с опцией -r задать опцию -m.
-s,--shell
Полный путь к программе, используемой в качестве начального командного интерпретатора для пользователя сразу после регистрации.
Длина этого поля не должна превосходить 256 символов. Если задать пустое значение, то будет использоваться оболочка по умолчанию.
-u,--uid
Позволяет задать идентификационный номер (численное неотрицательное значение идентификатора) пользователя.
Это значение должно быть уникальным, если не задействована опция -o.
U,--user-group
Позволяет создать группу, название которой совпадает с именем пользователя, присоединив данного пользователя к этой группе.
-h,--help
Показать краткую справку об утилите.
Пример: создадим пользователя с именем user и зададим для него основную группу users и
две дополнительные группы ftp и developers, к которым он будет приписан.
Для изменения уже имеющихся пользовательских записей используется утилита usermod. Она позволяет изменить данные существующей учётной записи пользователя. Режимы ее
работы и выполняемые функции задаются набором опций, перечисленных в таблице:
Добавить пользователя в дополнительную группу. Следует использовать только вместе с параметром -G.
-c,--comment
Новое значение поля комментария.
d,--home
Новый домашний каталог учётной записи. Если указан параметр -m, то содержимое текущего домашнего каталога будет перемещено в новый домашний каталог,
который будет создан, если он ещё не существует.
-e,--expiredate
Установить дату окончания срока действия учётной записи в формате ГГГГ-ММ-ДД.
-f,--inactive
Установить пароль после окончания срока действия учётной записи в INACTIVE. Если указано значение 0, то учётная запись блокируется сразу после окончания
срока действия пароля, а при значении -1 данная возможность не используется. По умолчанию используется значение -1.
-g,--gid
Принудительно назначить первичную группу.
-G,--groups
Список дополнительных групп.
-l,--login
Новое значение учётной записи.
-L,--lock
Заблокировать пароль пользователя. Это делается помещением символа ! в начало шифрованного пароля, что приводит к его блокировке.
Не следует использовать этот параметр вместе с -p или -U.
-m,--move-home
Переместить содержимое домашнего каталога пользователя в новое место. Если новый домашний каталог не существует, то он создаётся автоматически.
Данная опция используется только вместе с опцией -d.
-o,--non-unique.
При использовании с параметром -u этот параметр позволяет указывать не уникальный числовой идентификатор пользователя.
-p,--password
Задать новый пароль для учётной записи.
-s,--shell
Задать новую оболочку для учётной записи.
-u,--uid
Новый идентификационный номер для учётной записи.
-U,--unlock
Разблокировать учетную запись.
Пример: изменим срок действия учётной записи пользователя с идентификатором user6.
Для этого выполним следующую команду:
$ sudousermod-e2020-05-01user6
где 2020-05-01 — дата истечения срока действия учётной записи в формате ГГГГ-ММ-ДД.
Пример: изменим идентификатор (значение учётной записи) пользователя с user6 на user7.
Для удаления пользователей используется утилита userdel. Она позволяет удалить существующую учетную запись пользователя. Режимы ее
работы и выполняемые функции задаются набором опций, перечисленных в таблице:
С этой опцией учётная запись будет удалена, даже если пользователь в этот момент работает в системе.
Она также заставляет утилиту удалить домашний каталог пользователя и почтовый ящик, даже если другой пользователь использует тот же домашний
каталог или если почтовый ящик не принадлежит данному пользователю.
Внимание! Перед использованием этого параметра убедитесь в необходимости этого действия! Этот параметр может привести систему в нерабочее состояние!
-r,--remove
Файлы в домашнем каталоге пользователя будут удалены вместе с самим домашним каталогом и почтовым ящиком.
Пользовательские файлы, расположенные в других файловых системах, нужно искать и удалять вручную.
-n
Задает, сколько месяцев идентификатор пользователя должен устаревать перед повторным использованием. Задайте -1, чтобы указать,
что идентификатор пользователя никогда не должен использоваться повторно. Задайте 0, чтобы указать, что идентификатор пользователя можно
немедленно использовать повторно. Если опция -n не задана, то идентификатор будет устаревать стандартное количество месяцев перед повторным использованием.
-h,--help
Показать краткую справку.
Пример: удалим пользователя с идентификатором user7.
Для добавления группы пользователей используется утилита groupadd. Режимы ее
работы и выполняемые функции задаются набором опций, перечисленных в таблице:
Вернуть статус успешного выполнения, если группа уже существует.
Если используется вместе с параметром -g и указанный идентификатор группы уже существует,
то выбирается другой уникальный идентификатор группы, то есть параметр -g игнорируется.
-g
Числовое значение идентификатора группы. Значение должно быть уникальным, если не задан параметр -o.
Значение должно быть не отрицательным. По умолчанию берётся значение больше 999 и больше идентификатора любой другой группы.
Значения от 0 и до 999 обычно зарезервированы под системные группы.
-K
Изменить значения по умолчанию для параметров, которые хранятся в конфигурационном файле /etc/login.defsм.
-o
Разрешить добавление группы с не уникальным идентификатором.
-r,--system
Создать системную группу.
-h,--help
Показать краткую справку.
Пример: создадим группу group2 с числовым значением идентификатора 8285.
Для изменения существующей группы пользователей используется утилита groupmod. Режимы ее
работы и выполняемые функции задаются набором опций, перечисленных в таблице:
Для удаления существующей группы пользователей используется утилита groupdel. Утилита позволяет удалить определение группы из системы
путем удаления записи о соответствующей группе из файла /etc/group.
Однако она не удаляет идентификатор группы из файла паролей.
Удаленный идентификатор действует для всех файлов и каталогов, которые его имели.
Для создания и изменения пароля пользователя (в том числе для блокировки учётной записи пользователя) используется утилита passwd.
Обычный пользователь может изменить пароль только своей учётной записи,
суперпользователь root может изменить пароль любой учётной записи.
При изменении пароля проверяется информация об устаревании пароля, чтобы
убедиться, что пользователю разрешено изменять пароль в настоящий момент. Если
выяснится, что не разрешено, то утилита не производит изменение пароля и завершает
работу.
При изменении пароля пользователь должен будет сначала ввести старый пароль, если
он был. Введенное пользователем значение старого пароля зашифровывается и сравнивается
со значением зашифрованного текущего пароля. Затем пользователю необходимо будет
дважды ввести новый пароль. Значение второго ввода сравнивается с первым, и они должны
совпасть. После этого пароль тестируется на сложность подбора, т.е. его значение не должно
быть легко угадываемым.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Эту опцию можно использовать только вместе с -S для вывода статуса всех пользователей.
-d,--delete
Удалить пароль пользователя (сделать его пустым). Это быстрый способ заблокировать пароль учётной записи.
-e,--expire
Немедленно сделать пароль устаревшим. Это заставит пользователя изменить пароль при следующем входе в систему.
-i,--inactive
Эта опция используется для блокировки учётной записи по прошествии заданного числа дней после устаревания пароля. То есть если пароль устарел и прошло больше
дней, чем указано, то пользователь больше не сможет использовать свою учётную запись.
-l,--lock
Заблокировать указанную учётную запись. Эта опция блокирует учётную запись путем изменения значения пароля на такое, которое не может
быть ранее указанным зашифрованным паролем.
-m,--mindays
Задать минимальное количество дней между сменой пароля. Нулевое значение этого поля указывает на то, что пользователь может менять свой пароль тогда,
когда захочет.
-S,--status
Показать состояние учётной записи. Информация о состоянии содержит семь полей. Первое поле содержит имя учётной записи. Второе поле указывает,
заблокирована ли учётная запись, она без пароля или у неё есть рабочий пароль. Третье поле хранит дату последнего изменения пароля.
В следующих четырёх полях хранятся минимальный срок, максимальный срок, период выдачи предупреждения и период
неактивности пароля. Все эти сроки измеряются в днях.
-u,--unlock
Разблокировать указанную учётную запись. Этот параметр активирует учётную запись путем изменения пароля на прежнее значение, которое было перед
использованием параметра -l.
-w,--warndays
Установить число дней выдачи предупреждения, перед тем как потребуется смена пароля.
-x,--maxdays
Установить максимальное количество дней, в течение которых пароль остаётся рабочим, после чего его надо будет изменить.
-h,--help
Показать краткую справку.
Пример: зададим пароль пользователю user4. Работа команды passwd:
$ sudopasswduser4
Изменяется пароль пользователя user4.Новый пароль :Повторите ввод нового пароля :passwd: все данные аутентификации успешно обновлены.
Пример: посмотрим состояние учётной записи user4. Работа команды passwd:
2023-07-04 — отображает время последнего изменения пароля.
0 и 99999 — минимальный и максимальный срок действия пароля.
7 — срок вывода предупреждения.
-1 — срок деактивации пароля.
Изменение срока действия учётной записи и пароля пользователя
Утилита chage позволяет установить дату завершения срока действия учётной записи
пользователя, минимальный и максимальный срок действия пароля, дату завершения срока
действия пароля, а также количество дней, в течение которых пользователю будут
выводиться предупреждения о приближении завершения срока действия пароля.
Командой сhage может пользоваться только суперпользователь, за исключением использования её с
параметром -l, который позволяет непривилегированным пользователям определить время,
когда истекает их личный пароль или учетная запись.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Меняет значение mindays на минимальное число дней между сменой пароля. Значение 0 в этом поле обозначает, что пользователь может изменять свой пароль когда угодно.
-M
Меняет значение maxdays на максимальное число дней, в течение которых пароль будет действителен.
Когда сумма maxdays и lastday меньше, чем текущий день, у пользователя будет запрошен новый пароль до начала работы в системе.
-d
Меняет значение lastday на день, когда пароль был изменен последний раз (число дней с 1 января 1970). Дата также может быть указана в формате ГГГГ-ММ-ДД.
-E
Используется для задания даты, с которой учетная запись пользователя станет недоступной. Дата также может быть указана в формате ГГГГ-ММ-ДД.
-I
Используется для задания количества дней «неактивности», то есть дней, когда пользователь вообще не входил в систему, после которых его учетная запись будет
заблокирована. Значение 0 отключает этот режим.
-W
Используется для задания числа дней, когда пользователю начнет выводиться предупреждение об истечении срока действия его пароля и необходимости его изменения.
-l
Просмотреть текущую информацию о дате истечения срока действия пароля для пользователя.
Пример: просмотрим текущую информацию о дате истечения срока действия пароля для пользователя user4. Работа команды chage:
$ sudochage-luser4
Последний раз пароль был изменён: мар 12, 2023Срок действия пароля истекает: никогдаПароль будет деактивирован через: никогдаСрок действия учётной записи истекает: никогдаМинимальное количество дней между сменой пароля: 0Максимальное количество дней между сменой пароля: 99999Количество дней с предупреждением перед деактивацией пароля: 7
В данном разделе описана процедура управления политиками паролей на локальной системе, не подключённой к LDAP-каталогу пользователей
(FreeIPA, Microsoft Active Directory и т.д.).
В случае использования LDAP-каталога обратитесь к соответствующему руководству по администрированию.
Для управления политиками паролей в ОС МСВСфера используется системная утилита authselect,
которая оперирует профилями аутентификации.
В первую очередь необходимо убедиться, что выбран профиль аутентификации. Вы можете это сделать с помощью команды authselectcurrent:
Если система не настроена на использование профиля аутентификации, то необходимо выбрать его, чтобы получить возможность настраивать политики паролей.
Просмотреть список доступных профилей authselect вы можете следующим образом:
$ sudoauthselectlist
- minimal Local users only for minimal installations- sssd Enable SSSD for system authentication (also for local users only)- winbind Enable winbind for system authentication- custom/minimal_gost Local users only for minimal installations and gost support- custom/sssd_gost Enable SSSD with GOST support for system authentication (also for local users only)
Выбрать профиль вы можете с помощью команды authselectselect. Для локальной системы рекомендуется использовать профиль minimal:
$ sudoauthselectselectminimal--force
[error] File [/etc/authselect/system-auth] is still present[error] File [/etc/authselect/password-auth] is still present[error] File [/etc/authselect/fingerprint-auth] is still present[error] File [/etc/authselect/smartcard-auth] is still present[error] File [/etc/authselect/postlogin] is still present[error] File [/etc/authselect/nsswitch.conf] is still present[error] File [/etc/authselect/dconf-db] is still present[error] File [/etc/authselect/dconf-locks] is still present[error] Link [/etc/pam.d/system-auth] points to [/etc/authselect/system-auth][error] Symbolic link [/etc/pam.d/system-auth] to [/etc/authselect/system-auth] still exists![error] Link [/etc/pam.d/password-auth] points to [/etc/authselect/password-auth][error] Symbolic link [/etc/pam.d/password-auth] to [/etc/authselect/password-auth] still exists![error] Link [/etc/pam.d/fingerprint-auth] points to [/etc/authselect/fingerprint-auth][error] Symbolic link [/etc/pam.d/fingerprint-auth] to [/etc/authselect/fingerprint-auth] still exists![error] Link [/etc/pam.d/smartcard-auth] points to [/etc/authselect/smartcard-auth][error] Symbolic link [/etc/pam.d/smartcard-auth] to [/etc/authselect/smartcard-auth] still exists![error] Link [/etc/pam.d/postlogin] points to [/etc/authselect/postlogin][error] Symbolic link [/etc/pam.d/postlogin] to [/etc/authselect/postlogin] still exists![error] Link [/etc/nsswitch.conf] points to [/etc/authselect/nsswitch.conf][error] Symbolic link [/etc/nsswitch.conf] to [/etc/authselect/nsswitch.conf] still exists![error] Link [/etc/dconf/db/distro.d/20-authselect] points to [/etc/authselect/dconf-db][error] Symbolic link [/etc/dconf/db/distro.d/20-authselect] to [/etc/authselect/dconf-db] still exists![error] Link [/etc/dconf/db/distro.d/locks/20-authselect] points to [/etc/authselect/dconf-locks][error] Symbolic link [/etc/dconf/db/distro.d/locks/20-authselect] to [/etc/authselect/dconf-locks] still exists!Backup stored at /var/lib/authselect/backups/2024-10-08-16-28-25.N8QZyvProfile "minimal" was selected.The following nsswitch maps are overwritten by the profile:- aliases- automount- ethers- group- hosts- initgroups- netgroup- networks- passwd- protocols- publickey- rpc- services- shadow
Проверить корректность применения профиля вы можете следующим образом:
$ sudoauthselectcurrent
Profile ID: minimalEnabled features: None$ sudoauthselectcheck
Current configuration is valid.
Управление требованиями к качеству паролей
По умолчанию ОС МСВСфера предъявляет следующие требования к качеству паролей пользователя:
пароль должен иметь длину как минимум 8 символов;
пароль должен отсутствовать в словаре известных паролей программы cracklib.
За проверку качества паролей отвечает PAM-модуль pam_pwquality, который включён по умолчанию для всех профилей аутентификации.
Модуль настраивается через конфигурационный файл /etc/security/pwquality.conf,
который по умолчанию имеет следующий вид (для переменных указаны значения по умолчанию, описание параметров переведено на русский язык и добавлены комментарии):
Кредиты в параметрах dcredit, ucredit, lcredit и ocredit определяют сколько баллов может быть начислено за определённый тип символов,
используемый в новом пароле. Если значение параметра больше 0, то за каждый такой символ к общей длине пароля добавляется определённое количество кредитов.
Пример: если все четыре параметра имеют значение 1 и минимально допустимая длина пароля составляет 7 символов, то при использовании всех 4 типов символов
потребуется ввести пароль всего лишь из 7 символов.
За каждый неиспользованный тип символа к требуемой длине пароля добавляется штраф, указанный в соответствующем параметре.
Так, если не использовать цифры и строчные буквы, то минимальная длина пароля уже составит 9 символов.
Использование механизма кредитов позволяет ослабить требования к длине пароля за счёт использования символов из разных групп.
После внесения правок в конфигурационный файл /etc/security/pwquality.conf перезапуск каких-либо сервисов не требуется — PAM применит изменения
автоматически и новые настройки будут использованы при следующем изменении пароля.
Дополнительную информацию по использованию модуля pam_pwquality вы можете найти в соответствующих руководствах:
manpam_pwquality;
manpwquality.conf.
Ограничение на повторное использование паролей
В конфигурации по умолчанию операционная система не позволяет повторно использовать только текущий пароль пользователя.
Это поведение можно изменить с помощью PAM-модуля pam_pwhistory, который позволяет хранить историю паролей для каждого пользователя.
Для включения модуля pam_pwhistory выполните следующую команду:
$ sudoauthselectenable-featurewith-pwhistory
После этого свойство with-pwhistory должно появиться в свойствах текущего профиля аутентификации:
Модуль настраивается через конфигурационный файл /etc/security/pwhistory.conf,
который по умолчанию имеет следующий вид (для переменных указаны значения по умолчанию, описание параметров переведено на русский язык и добавлены комментарии):
Исходя из описания выше, после включения модуля pam_pwhistory, система будет хранить последние 10 паролей для каждого пользователя и
выдавать ошибку при попытке использовать сохранённый пароль в качестве нового при смене пароля.
Пример ошибки:
# наанглийскомязыке
$ passwd
Changing password for user test.Current password:New password:Retype new password:Password has been already used. Choose another.passwd: Have exhausted maximum number of retries for service# нарусскомязыке
$ passwd
Изменение пароля пользователя test.Текущий пароль:Новый пароль:Повторите ввод нового пароля:Этот пароль уже был использован. Выберите другой.
Дополнительную информацию по использованию модуля pam_pwhistory вы можете найти в соответствующих руководствах:
manpam_pwhistory;
manpwhistory.conf.
Ограничение количества неуспешных попыток аутентификации
В конфигурации по умолчанию операционная система не ограничивает количество неуспешных попыток аутентификации пользователя.
Однако, реализация такого ограничения возможна с помощью PAM-модуля pam_faillock.
Для включения модуля pam_faillock выполните следующую команду:
$ sudoauthselectenable-featurewith-faillock
После этого свойство with-faillock должно появиться в свойствах текущего профиля аутентификации:
Модуль настраивается через конфигурационный файл /etc/security/faillock.conf, который по умолчанию имеет следующий вид
(для переменных указаны значения по умолчанию, описание параметров переведено на русский язык и добавлены комментарии):
Исходя из описания выше, при включении PAM-модуля pam_faillock будет автоматически применена следующая конфигурация:
локальные пользователи и пользователи из LDAP-каталога будут блокироваться после трёх неудачных попытках входа в течении 15 минут на срок в 10 минут.
Пользователь root блокироваться не будет.
После внесения правок в конфигурационный файл /etc/security/faillock.conf перезапуск каких-либо сервисов не требуется — PAM применит изменения автоматически
при обработке следующего запроса на аутентификацию.
Функциональность модуля pam_faillock распространяется как на локальную (через графическую или текстовую консоль), так и на сетевую (с помощью SSH)
аутентификацию пользователей.
Для просмотра истории неудачных попыток аутентификации пользователя за учётный период fail_interval вы можете использовать следующую команду
(замените «USERNAME» на имя реального пользователя из вашей системы):
$ sudofaillock--userUSERNAME
When Type Source Valid2024-10-08 21:12:20 RHOST 192.168.1.4 V2024-10-08 21:12:25 RHOST 192.168.1.4 V2024-10-08 21:12:28 RHOST 192.168.1.4 V
Для снятия блокировки учётной записи пользователя вы можете использовать следуюзую команду:
$ sudofaillock--userUSERNAME--reset
Дополнительную информацию по использованию модуля pam_faillock вы можете найти в соответствующих руководствах:
manpam_faillock;
manfaillock;
manfaillock.conf.
В данном разделе описана процедура управления политиками паролей на локальной системе, не подключённой к LDAP-каталогу пользователей
(FreeIPA, Microsoft Active Directory и т.д.).
В случае использования LDAP-каталога обратитесь к соответствующему руководству по администрированию.
Для управления политиками паролей в ОС МСВСфера используется системная утилита authselect,
которая оперирует профилями аутентификации.
В первую очередь необходимо убедиться, что выбран профиль аутентификации. Вы можете это сделать с помощью команды authselectcurrent:
Если система не настроена на использование профиля аутентификации, то необходимо выбрать его, чтобы получить возможность настраивать политики паролей.
Просмотреть список доступных профилей authselect вы можете следующим образом:
$ sudoauthselectlist
- minimal Local users only for minimal installations- sssd Enable SSSD for system authentication (also for local users only)- winbind Enable winbind for system authentication- custom/minimal_gost Local users only for minimal installations and gost support- custom/sssd_gost Enable SSSD with GOST support for system authentication (also for local users only)
Выбрать профиль вы можете с помощью команды authselectselect. Для локальной системы рекомендуется использовать профиль minimal:
$ sudoauthselectselectminimal--force
[error] File [/etc/authselect/system-auth] is still present[error] File [/etc/authselect/password-auth] is still present[error] File [/etc/authselect/fingerprint-auth] is still present[error] File [/etc/authselect/smartcard-auth] is still present[error] File [/etc/authselect/postlogin] is still present[error] File [/etc/authselect/nsswitch.conf] is still present[error] File [/etc/authselect/dconf-db] is still present[error] File [/etc/authselect/dconf-locks] is still present[error] Link [/etc/pam.d/system-auth] points to [/etc/authselect/system-auth][error] Symbolic link [/etc/pam.d/system-auth] to [/etc/authselect/system-auth] still exists![error] Link [/etc/pam.d/password-auth] points to [/etc/authselect/password-auth][error] Symbolic link [/etc/pam.d/password-auth] to [/etc/authselect/password-auth] still exists![error] Link [/etc/pam.d/fingerprint-auth] points to [/etc/authselect/fingerprint-auth][error] Symbolic link [/etc/pam.d/fingerprint-auth] to [/etc/authselect/fingerprint-auth] still exists![error] Link [/etc/pam.d/smartcard-auth] points to [/etc/authselect/smartcard-auth][error] Symbolic link [/etc/pam.d/smartcard-auth] to [/etc/authselect/smartcard-auth] still exists![error] Link [/etc/pam.d/postlogin] points to [/etc/authselect/postlogin][error] Symbolic link [/etc/pam.d/postlogin] to [/etc/authselect/postlogin] still exists![error] Link [/etc/nsswitch.conf] points to [/etc/authselect/nsswitch.conf][error] Symbolic link [/etc/nsswitch.conf] to [/etc/authselect/nsswitch.conf] still exists![error] Link [/etc/dconf/db/distro.d/20-authselect] points to [/etc/authselect/dconf-db][error] Symbolic link [/etc/dconf/db/distro.d/20-authselect] to [/etc/authselect/dconf-db] still exists![error] Link [/etc/dconf/db/distro.d/locks/20-authselect] points to [/etc/authselect/dconf-locks][error] Symbolic link [/etc/dconf/db/distro.d/locks/20-authselect] to [/etc/authselect/dconf-locks] still exists!Backup stored at /var/lib/authselect/backups/2024-10-08-16-28-25.N8QZyvProfile "minimal" was selected.The following nsswitch maps are overwritten by the profile:- aliases- automount- ethers- group- hosts- initgroups- netgroup- networks- passwd- protocols- publickey- rpc- services- shadow
Проверить корректность применения профиля вы можете следующим образом:
$ sudoauthselectcurrent
Profile ID: minimalEnabled features: None$ sudoauthselectcheck
Current configuration is valid.
Управление требованиями к качеству паролей
По умолчанию ОС МСВСфера предъявляет следующие требования к качеству паролей пользователя:
пароль должен иметь длину как минимум 8 символов;
пароль должен отсутствовать в словаре известных паролей программы cracklib.
За проверку качества паролей отвечает PAM-модуль pam_pwquality, который включён по умолчанию для всех профилей аутентификации.
Модуль настраивается через конфигурационный файл /etc/security/pwquality.conf,
который по умолчанию имеет следующий вид (для переменных указаны значения по умолчанию, описание параметров переведено на русский язык и добавлены комментарии):
Кредиты в параметрах dcredit, ucredit, lcredit и ocredit определяют сколько баллов может быть начислено за определённый тип символов,
используемый в новом пароле. Если значение параметра больше 0, то за каждый такой символ к общей длине пароля добавляется определённое количество кредитов.
Пример: если все четыре параметра имеют значение 1 и минимально допустимая длина пароля составляет 7 символов, то при использовании всех 4 типов символов
потребуется ввести пароль всего лишь из 7 символов.
За каждый неиспользованный тип символа к требуемой длине пароля добавляется штраф, указанный в соответствующем параметре.
Так, если не использовать цифры и строчные буквы, то минимальная длина пароля уже составит 9 символов.
Использование механизма кредитов позволяет ослабить требования к длине пароля за счёт использования символов из разных групп.
После внесения правок в конфигурационный файл /etc/security/pwquality.conf перезапуск каких-либо сервисов не требуется — PAM применит изменения
автоматически и новые настройки будут использованы при следующем изменении пароля.
Дополнительную информацию по использованию модуля pam_pwquality вы можете найти в соответствующих руководствах:
manpam_pwquality;
manpwquality.conf.
Ограничение на повторное использование паролей
В конфигурации по умолчанию операционная система не позволяет повторно использовать только текущий пароль пользователя.
Это поведение можно изменить с помощью PAM-модуля pam_pwhistory, который позволяет хранить историю паролей для каждого пользователя.
Для включения модуля pam_pwhistory выполните следующую команду:
$ sudoauthselectenable-featurewith-pwhistory
После этого свойство with-pwhistory должно появиться в свойствах текущего профиля аутентификации:
Модуль настраивается через конфигурационный файл /etc/security/pwhistory.conf,
который по умолчанию имеет следующий вид (для переменных указаны значения по умолчанию, описание параметров переведено на русский язык и добавлены комментарии):
Исходя из описания выше, после включения модуля pam_pwhistory, система будет хранить последние 10 паролей для каждого пользователя и
выдавать ошибку при попытке использовать сохранённый пароль в качестве нового при смене пароля.
Пример ошибки:
# наанглийскомязыке
$ passwd
Changing password for user test.Current password:New password:Retype new password:Password has been already used. Choose another.passwd: Have exhausted maximum number of retries for service# нарусскомязыке
$ passwd
Изменение пароля пользователя test.Текущий пароль:Новый пароль:Повторите ввод нового пароля:Этот пароль уже был использован. Выберите другой.
Дополнительную информацию по использованию модуля pam_pwhistory вы можете найти в соответствующих руководствах:
manpam_pwhistory;
manpwhistory.conf.
Ограничение количества неуспешных попыток аутентификации
В конфигурации по умолчанию операционная система не ограничивает количество неуспешных попыток аутентификации пользователя.
Однако, реализация такого ограничения возможна с помощью PAM-модуля pam_faillock.
Для включения модуля pam_faillock выполните следующую команду:
$ sudoauthselectenable-featurewith-faillock
После этого свойство with-faillock должно появиться в свойствах текущего профиля аутентификации:
Модуль настраивается через конфигурационный файл /etc/security/faillock.conf, который по умолчанию имеет следующий вид
(для переменных указаны значения по умолчанию, описание параметров переведено на русский язык и добавлены комментарии):
Исходя из описания выше, при включении PAM-модуля pam_faillock будет автоматически применена следующая конфигурация:
локальные пользователи и пользователи из LDAP-каталога будут блокироваться после трёх неудачных попытках входа в течении 15 минут на срок в 10 минут.
Пользователь root блокироваться не будет.
После внесения правок в конфигурационный файл /etc/security/faillock.conf перезапуск каких-либо сервисов не требуется — PAM применит изменения автоматически
при обработке следующего запроса на аутентификацию.
Функциональность модуля pam_faillock распространяется как на локальную (через графическую или текстовую консоль), так и на сетевую (с помощью SSH)
аутентификацию пользователей.
Для просмотра истории неудачных попыток аутентификации пользователя за учётный период fail_interval вы можете использовать следующую команду
(замените «USERNAME» на имя реального пользователя из вашей системы):
$ sudofaillock--userUSERNAME
When Type Source Valid2024-10-08 21:12:20 RHOST 192.168.1.4 V2024-10-08 21:12:25 RHOST 192.168.1.4 V2024-10-08 21:12:28 RHOST 192.168.1.4 V
Для снятия блокировки учётной записи пользователя вы можете использовать следуюзую команду:
$ sudofaillock--userUSERNAME--reset
Дополнительную информацию по использованию модуля pam_faillock вы можете найти в соответствующих руководствах:
Утилита id позволяет получить сведения об указанном пользователе или о текущем
пользователе, запустившем данную утилиту, если он не указал явно имя пользователя.
По умолчанию выводятся числовые идентификаторы пользователя и группы, действующие
идентификаторы пользователя и группы, а также идентификаторы других групп, в которых
состоит пользователь.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Конфигурационный файл /etc/login.defs позволяет задавать параметры, определяющие
использование пользователями своих паролей.
Параметры перечислены в таблице:
Параметры конфигурационного файла /etc/login.defs и их описание
Параметр
Описание
PASS_MAX_DAYS
Определяет максимальный срок действия пароля, т.е. максимальное число дней, в течение которых действие пароля сохраняется.
По истечении этого срока запускается процесс принудительной смены пароля. Если значение параметра не задано,
то есть параметр закомментирован символом # или ему присвоено значение -1, то данное ограничение не установлено (отменяется).
PASS_MIN_DAYS
определяет минимальный срок между изменениями пароля, т.е.
минимальное число дней между двумя последовательными изменениями пароля. Если значение параметра не задано, то есть параметр закомментирован символом # или ему
присвоено значение -1, то данное ограничение не установлено (отменяется).
PASS_MIN_LEN
Определяет минимальную допустимую длину задаваемого пароля.
PASS_WARN_AGE
Определяет, за сколько дней до истечения срока действия пароля начнётся вывод предупреждения о необходимости его смены.
Если значение параметра не задано, то есть параметр закомментирован символом # или ему присвоено значение -1, то данное ограничение не установлено (отменяется).
Если значение параметра 0, то предупреждение о необходимости смены пароля будет выведено в день его устаревания.
Пример: выведем на экран текущее заданное значение максимального количества дней действия пароля:
Конфигурационный файл /etc/pam.d/system-auth позволяет задавать настройки подключаемых модулей аутентификации.
Каждая строка в нем представляет собой правило, состоящее из трёх обязательных полей и одного опционального. Поля разделены символом пробела.
Порядок, в котором указаны правила, определяет очередность их проверки.
Синтаксис правила:
type control module-path [module-arguments]
Поле type задаёт тип вызываемого модуля и может принимать одно из четырех допустимых значений:
auth — предназначен для аутентификации пользователя путём запроса и проверки его пароля;
account — используется для контроля доступа к сервису/приложению. Например, может быть произведён запрос о том, не истёк ли срок действия аккаунта пользователя, разрешено ли пользователю работать с определённым сервисом в определённое время, хватает ли системных ресурсов для работы;
password — применятся для установки/изменения паролей;
session — управляет действиями пользователя в рамках активной сессии после его успешной аутентификации в системе.
Поле control задаёт действие, которое нужно выполнить после вызова модуля. Доступно несколько действий:
required — модуль должен вернуть положительный ответ. Если он возвращает отрицательный ответ, то пользователь будет уведомлен об этом только после того, как все остальные модули данного типа будут проверены;
requisite — требует от модуля положительный ответ. В случае получения отрицательного ответа последовательная проверка выполнения остальных правил моментально прекращается и пользователь получает сообщение об ошибке аутентификации;
sufficient — в случае, если ни один из модулей с действием required или sufficient, расположенных перед текущим, не вернул отрицательного ответа, текущий модуль вернёт положительный ответ и все последующие модули будут проигнорированы;
optional — результат проверки модуля важен только в том случае, если действие является единственным для данного модуля;
include — предназначается для добавления строк заданного типа из других файлов конфигурации из каталога /etc/pam.d/ в файл конфигурации /etc/pam.d/system-auth. Название файла указывается в качестве аргумента действия.
Поле module-path задаёт путь к вызываемому модулю.
Поле module-arguments — дополнительные необязательные параметры модуля, необходимые для определения действий некоторых отдельных модулей в случае успешной
авторизации. Так, если в конфигурационном файле найти строку, содержащую pam_pwquality.so, и добавить в нее minlen=8, то будет установлена минимальная длина
пароля, равная 8-ми символам.
Пример: В качестве примера сделаем блокировку учётной записи пользователя, который
совершит определенное количество неудачных попыток входа в систему.
Для этого внесем в файл /etc/pam.d/system-auth следующие изменения:
Сначала допишем в секцию auth строку authrequiredpam_tally2.sodeny=2onerr=fail, т.е. подключим модуль pam_tally2 и установим блокировку пользователя после двух (значение параметра deny) неудачных попыток входа.
Затем в секции account добавим строку accountrequiredpam_tally2.so и закомментируем строки вида authrequisitepam_succeed_if.souid>=1000quiet и authrequiredpam_deny.so.
Потом строку authsufficientpam_unix.sonulloktry_first_pass заменим на authrequiredpam_unix.sonulloktry_first_pass.
После этого пользователь, допустивший подряд две неверных попытки входа, на
третьей получит сообщение о том, что его учетная запись заблокирована.
И даже если четвертой попыткой он введет верный пароль, то все равно не получит доступ к системе.
$ sudouser2
Пароль:sudo Сбой при проверке подлинности$ sudouser2
Пароль:sudo Сбой при проверке подлинности$ sudouser2
Пароль:Учетная запись заблокирована как следствие неудачных попыток входа (всего 3)sudo Сбой при проверке подлинности$ sudouser2
Пароль:Учетная запись заблокирована как следствие неудачных попыток входа (всего 4)sudo Сбой при проверке подлинности
Пример: В качестве другого примера настроим проверку паролей на сложность подбора через pam_cracklib.
Выполним команду passwd для смены пароля пользователя user2.
Зададим пароль из трех символов и увидим сообщение «НЕУДАЧНЫЙ ПАРОЛЬ: слишком короткий».
Зададим пароль из четырех символов, система выдаст сообщение «НЕУДАЧНЫЙ ПАРОЛЬ: короткий».
Зададим пароль из шести символов (букв и цифр), в результате чего получим сообщение «НЕУДАЧНЫЙ ПАРОЛЬ: слишком простой».
После трех неуспешных попыток модуль вернет ошибку.
$ passwd
Изменяется пароль пользователя user2.Смена пароля для user2.(текущий)пароль Unix:Новый пароль:НЕУДАЧНЫЙ ПАРОЛЬ: слишком короткийНовый пароль:НЕУДАЧНЫЙ ПАРОЛЬ: короткийНовый пароль:НЕУДАЧНЫЙ ПАРОЛЬ: слишком простойpasswd: Использовано максимальное число попыток, заданное для службы
Зададим пароль достаточной длины из одних цифр и получим сообщение «НЕУДАЧНЫЙ ПАРОЛЬ: не содержит достаточное число РАЗЛИЧНЫХ символов».
Зададим пароль достаточной длины, содержащий все указанные требования, кроме включения в него отличных от алфавита и цифр символов. Например, 2QyfMOb4. Получим сообщение «НЕУДАЧНЫЙ ПАРОЛЬ: слишком простой».
$ passwd
Изменяется пароль пользователя user2.Смена пароля для user2.(текущий)пароль Unix:Новый пароль:НЕУДАЧНЫЙ ПАРОЛЬ: не содержит достаточное число РАЗЛИЧНЫХ символовНовый пароль:НЕУДАЧНЫЙ ПАРОЛЬ: короткийНовый пароль:НЕУДАЧНЫЙ ПАРОЛЬ: слишком простойpasswd: Использовано максимальное число попыток, заданное для службы
Зададим пароль, соблюдая все установленные требования. Например, 2QyfM*Ob4. Пароль будет успешно задан (см. листинг).
$ passwd
Изменяется пароль пользователя user2.Смена пароля для user2.(текущий)пароль Unix:Новый пароль:Повторите ввод нового пароля:passwd: Все данные аутентификации успешно обновлены.
Конфигурационный файл /etc/issue позволяет задать текстовое содержание уведомления пользователю перед началом его идентификации и аутентификации для входа в
систему. Например, с предупреждением о том, что в ней реализованы меры защиты
информации и о необходимости соблюдения соответствующих правил обработки данных.
Традиционно в конфигурационном файле присутствуют опции выдачи сведений об
операционной системе и ядре. Дополнительно можно добавить опции выдачи текущих даты
и времени, количества работающих пользователей и некоторых других сведений.
salt — «соль», добавляемая к паролю строка из 10-20 случайных символов;
hashed — зашифрованный пароль;
lastchanged — дата последнего изменения пароля;
min — минимальное число дней между двумя последовательными сменами паролей;
max — срок действия пароля, т.е. максимальное число дней, в течение которых пароль будет активен;
warn — за какое количество дней до срока истечения действия пароля пользователь будет уведомлен о том, что его необходимо сменить;
inactive — количество дней после истечения срока действия пароля, спустя которое его учётная запись блокируется;
expire — число дней, прошедших с момента блокирования учётной записи.
Если после имени пользователя username вместо id:salt:hashed стоит символ * либо
последовательность из двух символов !!, то это означает, что попытки входа в систему от
имени данного пользователя заблокированы.
Утилита smart-launcher («Умный запуск») предназначена для запуска приложений
в графическом или терминальном режиме от имени администратора системы или
другого пользователя, а также для запуска приложений с изменённым приоритетом
выполнения.
Установка и запуск
Для установки программы smart-launcher выполните следующую команду в
«Терминале»:
$ sudodnfinstallsmart-launcher
Либо установите программу через «Центр приложений».
После установки smart-launcher можно запустить, выбрав в главном меню системы
пункт «Умный запуск».
Либо запустив программу через «Терминал»:
$ smart-launcher
Запуск графических приложений от имени другого пользователя
Для запуска графических приложений от имени другого пользователя необходимо
ввести имя исполняемого файла в поле «Команда» (отмечено цифрой 1 на снимке
экрана).
Или вызвать диалог выбора файла (кнопка «…» отмечена цифрой 2 на снимке
экрана выше) и выбрать исполняемый файл.
Далее, установите флажок «Выполнить от имени другого пользователя» (отмечен
цифрой 1 на следующем снимке экрана) и, в случае необходимости, выберите
метод запуска su, sudo (используется по умолчанию) или gksudo
(соответствующая группа переключателей выделена красным прямоугольником на
снимке экрана).
По умолчанию приложение будет выполнено от имени пользователя root, но вы
можете выбрать другого пользователя из выпадающего списка локальных
пользователей (отмечен цифрой 2 на снимке экрана).
В случае, если пользователь не является локальным (например, пользователь
домена Active Directory или FreeIPA), необходимо ввести его имя в поле
«Пользователь» (отмечено цифрой 1 на снимке экрана).
Для запуска приложения нажмите кнопку «Выполнить» (отмечена цифрой 2 на
снимке экрана выше) — приложение будет запущено в новом окне.
Запуск приложений в терминальном режиме от имени другого пользователя
Для запуска приложения в терминальном режиме от имени другого пользователя
необходимо выбрать исполняемый файл, при необходимости ввести имя пользователя
и выбрать режим запуска. Далее, необходимо установить флажок «Выполнить в
терминале» и нажать кнопку «Выполнить».
Указанная программа будет запущена в графическом терминале.
Запуск приложений с изменённым уровнем приоритета
Утилита smart-launcher позволяет управлять двумя уровнями приоритета
выполнения процесса:
приоритет выполнения в пользовательском пространстве с использованием утилиты
nice (см. mannice). В таком режиме все процессы делят ресурсы центрального
процессора пропорционально установленным приоритетам;
приоритет выполнения в реальном времени с использованием утилиты chrt
(см. manchrt). Процессы, запущенные в таком режиме, имеют приоритет в реальном
времени и могут вытеснять все другие процессы, в том числе и запущенные с
nice=-20.
В большинстве случаев не рекомендуется изменять приоритеты реального времени
за исключением тех задач, где критично время выполнения: обработка сигналов
в реальном времени, промышленные контроллеры, встраиваемые системы с жёсткими
требованиями к планированию выполнения процессов.
Чтобы изменить приоритет выполнения процесса вам потребуются привилегии
системного администратора.
Для запуска приложения с изменённым приоритетом в пользовательском пространстве
вам необходимо выбрать исполняемый файл, установить флажок «Выполнить с другим
приоритетом» и установить приоритет от 19 (наименьший приоритет) до -20
(наибольший приоритет) в поле «Приоритет» используя ползунок, кнопки - и +
или указав нужное число в соответствующем поле ввода.
Для запуска приложения с приоритетом реального времени вам необходимо выбрать
исполняемый файл, установить флажок «Выполнить с приоритетом реального времени»
и установить приоритет от 1 (минимальный приоритет) до 99 (максимальный
приоритет) в поле «Приоритет» используя ползунок, кнопки - и + или указав
нужное число в соответствующем поле ввода.
Запускать приложения с изменением уровня приоритета можно как в графическом
режиме, так и в терминальном.
Аутентификация
При запуске приложения от имени другого пользователя с использованием sudo
или gksudo пароль пользователя, в случае необходимости, будет запрошен в
отдельном графическом окне.
Если же приложение запускается от имени другого пользователя с использованием
su, то пароль будет запрошен в отдельном терминальном окне.
Диагностика ошибок
Ошибки, возникающие во время запуска приложения, отображаются в отдельном окне.
Также smart-launcher регистрирует возникающие ошибки в файле журнала
~/.cache/smart-launcher/smart-launcher.log.
Утилита smart-launcher
Утилита smart-launcher («Умный запуск») предназначена для запуска приложений
в графическом или терминальном режиме от имени администратора системы или
другого пользователя, а также для запуска приложений с изменённым приоритетом
выполнения.
Установка и запуск
Для установки программы smart-launcher выполните следующую команду в
«Терминале»:
$ sudodnfinstallsmart-launcher
Либо установите программу через «Центр приложений».
После установки smart-launcher можно запустить, выбрав в главном меню системы
пункт «Умный запуск».
Либо запустив программу через «Терминал»:
$ smart-launcher
Запуск графических приложений от имени другого пользователя
Для запуска графических приложений от имени другого пользователя необходимо
ввести имя исполняемого файла в поле «Команда» (отмечено цифрой 1 на снимке
экрана).
Или вызвать диалог выбора файла (кнопка «…» отмечена цифрой 2 на снимке
экрана выше) и выбрать исполняемый файл.
Далее, установите флажок «Выполнить от имени другого пользователя» (отмечен
цифрой 1 на следующем снимке экрана) и, в случае необходимости, выберите
метод запуска su, sudo (используется по умолчанию) или gksudo
(соответствующая группа переключателей выделена красным прямоугольником на
снимке экрана).
По умолчанию приложение будет выполнено от имени пользователя root, но вы
можете выбрать другого пользователя из выпадающего списка локальных
пользователей (отмечен цифрой 2 на снимке экрана).
В случае, если пользователь не является локальным (например, пользователь
домена Active Directory или FreeIPA), необходимо ввести его имя в поле
«Пользователь» (отмечено цифрой 1 на снимке экрана).
Для запуска приложения нажмите кнопку «Выполнить» (отмечена цифрой 2 на
снимке экрана выше) — приложение будет запущено в новом окне.
Запуск приложений в терминальном режиме от имени другого пользователя
Для запуска приложения в терминальном режиме от имени другого пользователя
необходимо выбрать исполняемый файл, при необходимости ввести имя пользователя
и выбрать режим запуска. Далее, необходимо установить флажок «Выполнить в
терминале» и нажать кнопку «Выполнить».
Указанная программа будет запущена в графическом терминале.
Запуск приложений с изменённым уровнем приоритета
Утилита smart-launcher позволяет управлять двумя уровнями приоритета
выполнения процесса:
приоритет выполнения в пользовательском пространстве с использованием утилиты
nice (см. mannice). В таком режиме все процессы делят ресурсы центрального
процессора пропорционально установленным приоритетам;
приоритет выполнения в реальном времени с использованием утилиты chrt
(см. manchrt). Процессы, запущенные в таком режиме, имеют приоритет в реальном
времени и могут вытеснять все другие процессы, в том числе и запущенные с
nice=-20.
В большинстве случаев не рекомендуется изменять приоритеты реального времени
за исключением тех задач, где критично время выполнения: обработка сигналов
в реальном времени, промышленные контроллеры, встраиваемые системы с жёсткими
требованиями к планированию выполнения процессов.
Чтобы изменить приоритет выполнения процесса вам потребуются привилегии
системного администратора.
Для запуска приложения с изменённым приоритетом в пользовательском пространстве
вам необходимо выбрать исполняемый файл, установить флажок «Выполнить с другим
приоритетом» и установить приоритет от 19 (наименьший приоритет) до -20
(наибольший приоритет) в поле «Приоритет» используя ползунок, кнопки - и +
или указав нужное число в соответствующем поле ввода.
Для запуска приложения с приоритетом реального времени вам необходимо выбрать
исполняемый файл, установить флажок «Выполнить с приоритетом реального времени»
и установить приоритет от 1 (минимальный приоритет) до 99 (максимальный
приоритет) в поле «Приоритет» используя ползунок, кнопки - и + или указав
нужное число в соответствующем поле ввода.
Запускать приложения с изменением уровня приоритета можно как в графическом
режиме, так и в терминальном.
Аутентификация
При запуске приложения от имени другого пользователя с использованием sudo
или gksudo пароль пользователя, в случае необходимости, будет запрошен в
отдельном графическом окне.
Если же приложение запускается от имени другого пользователя с использованием
su, то пароль будет запрошен в отдельном терминальном окне.
Диагностика ошибок
Ошибки, возникающие во время запуска приложения, отображаются в отдельном окне.
Также smart-launcher регистрирует возникающие ошибки в файле журнала
~/.cache/smart-launcher/smart-launcher.log.