我尝试在 centos 8 上配置 pam.d。我想将系统范围的 umask 配置为/etc/pam.d/postlogin
.
postlogin
包含在多个服务中,/etc/pam.d
例如 su、su-l
我的postlogin
样子
session optional pam_umask.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service !~ gdm* service !~ su* quiet
session [default=1] pam_lastlog.so nowtmp showfailed
session optional pam_lastlog.so silent noupdate showfailed
我尝试使用su -l username
aswell登录su username
并调用 umask ,两者的 umask 均为 0022。
我不得不提的是,所有帐户的 umask 也设置/etc/profile
为 022。
我还尝试增加pam_umask.so
详细程度debug
并查阅日志,/var/log/{messages,secure,audit}
没有任何条目可以解释为什么pam_umask.so
不起作用。
答案1
我不得不提的是,所有帐户的 umask 也在 /etc/profile 中设置为 022。
每个使用 /etc/profile 的 shell 都会覆盖由pam_umask.so
.因此,如果您想要系统范围的 umask,则应该将 /etc/profile 中的 umask 也设置为 0077。