pam_time.so 配置被忽略,如何调试?

pam_time.so 配置被忽略,如何调试?

我正在尝试使用该pam_time.so模块来限制某些用户使用的时间sudo。但是,我的配置更改似乎没有效果。我该如何调试此问题?我的发行版可以更改 的位置吗/etc/security/time.confpam.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/shjournalctl -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

问题可能出在两个通配符上。

sudo;*;*;!Al0830-1700

根据手册页它只能使用一次:“对于这些项目,简单通配符“*”只能使用一次。

为了避免这种情况,你可以使用类似以下的方法:

sudo;*;!root;!Al0830-1700

这会将规则应用于每个用户(root 除外)。

编辑:划掉它,它在我的系统上运行良好。顺便说一句,你应该使用以下方法测试帐户堆栈:pamtester -v sudo username acct_mgmt

相关内容