当会话打开时,我需要以打开会话的用户身份运行脚本。
我在 /etc/pam.d/common-session 中添加了:
session optional pam_exec.so log=/tmp/test_pam_foo.log /usr/local/bin/test_pam_foo.sh
Run Code Online (Sandbox Code Playgroud)
我还尝试激活 pam_exec 的选项seteuid
基本脚本 /usr/local/bin/test_pam_foo.sh :
#!/bin/sh
id -u >> /tmp/test_pam_foo
id -ru >> /tmp/test_pam_foo
Run Code Online (Sandbox Code Playgroud)
不幸的是,我一直得到0有效id和真实id。
我错过了什么吗?
作为替代方案,我知道pam_script的存在,不要与pam-script混淆。
pam_script 默认以当前用户身份运行,并且可以选择runas强制以 root 身份运行。但我想优先使用已打包在我的发行版(Ubuntu 12.04)中的 pam 库。
嗯,你可以有/usr/local/bin/test_pam_foo.sh
更改用户,因为它位于PAM_USER环境变量中。
请注意手册页中有关用户对环境具有潜在控制权的注释pam_exec(取决于使用它的服务(如su))。因此,使用脚本可能不是一个好主意(即使您修复了$PATH其他有问题的变量,也会有一些您无能为力,例如 bash 脚本的 SHELLOPTS 或 BASH_ENV)。
最好是在调用脚本之前使用包装器更改用户。
| 归档时间: |
|
| 查看次数: |
9533 次 |
| 最近记录: |