Я пытаюсь использовать модуль pam_time.so чтобы ограничить время, в которое некоторые пользователи могут использовать sudo . Тем не менее, мои изменения конфигурации, кажется, не имеют никакого эффекта. Как я могу отладить эту проблему? Может ли мой дистрибутив изменить местоположение для /etc/security/time.conf? pam.d/sudo уже существует, и если я закомментирую другие строки, я смогу увидеть эффект, но файл time.conf нигде не существует в /etc , поэтому я могу просто изменить неправильный файл.

Ниже то, что я пытался до сих пор.


Вот содержимое /etc/security/time.conf:

sudo;*;*;!Al0830-1700
su;*;*;!Al0830-1700

А вот содержимое /etc/pam.d/sudo и /etc/pam.d/su (по умолчанию в моем дистрибутиве плюс первая строка для загрузки pam_time.so).

account required pam_time.so debug
account required pam_unix.so
auth sufficient pam_unix.so  likeauth try_first_pass
auth required pam_deny.so
password requisite pam_unix.so nullok sha512
session required pam_env.so envfile=…
session required pam_unix.so

Когда я пытаюсь использовать sudo /bin/sh , journalctl -f печатает:

août 09 13:53:15 nixos sudo[7454]:  georges : TTY=pts/6 ; PWD=/home/georges ; USER=root ; COMMAND=/bin/sh
août 09 13:53:15 nixos sudo[7454]: pam_unix(sudo:session): session opened for user root by (uid=0)
  • debug в /etc/pam.d/sudo кажется, не имеет никакого эффекта
  • Некоторые источники в Интернете используют account requisite pam_time.so вместо required , но для меня это не имеет значения
  • pamtester -v sudo root open_session не показывает никакой полезной информации (и успешно), но pamtester -v sudo root authenticate отклоняет мой пароль, и журнал journalctl показывает это, но значения в time.conf не действуют:

    août 09 13:56:03 nixos unix_chkpwd[7965]: check pass; user unknown
    août 09 13:56:03 nixos unix_chkpwd[7965]: password check failed for user (root)
    
  • Я попытался удалить строку auth sufficient pam_unix.so … , достаточную для аутентификации , и доступ к sudo был запрещен даже без попытки ввода пароля, поэтому я знаю изменения в работе /etc/pam.d/sudo . pam_time.so не может быть использован в качестве модуля auth однако (журнал journalctl жалуется недостающим символ).

  • Я попытался перезагрузить машину, но конфигурация все еще игнорируется.

1 ответ1

0

Проблема, вероятно, заключается в двух подстановочных знаках.

sudo;*;*;!Al0830-1700

Согласно справочной странице, его можно использовать только один раз: « Для этих элементов простой подстановочный знак« * »может использоваться только один раз ».

Чтобы обойти это, вы можете использовать что-то вроде:

sudo;*;!root;!Al0830-1700

Это применяет правило к каждому пользователю (кроме root).

Изменить: поцарапать это, это работает в моей системе. Кстати, вы должны протестировать стек учетной записи с помощью pamtester -v sudo username acct_mgmt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .