我想在用户登录后运行一个脚本。该脚本将使用其 Kerberos 票证挂载 SMB 共享。
在 RedHat 7 下,我只需从 调用该脚本,/etc/gdm/PreSession/Default
它就会运行良好。它甚至会在提升权限的情况下运行脚本时保留(此变量通过下的$KRB5CCNAME
保留。Defaults env_keep += "KRB5CCNAME"
sudoers.d
在 Ubuntu 18.04 下,我们使用 下的一项服务/etc/systemd/user
,只要有票,该服务就会使用该票。
换句话说,在 RHEL7 和 Ubuntu 下,即使通过 sudo 提升权限,我们也可以使用票证,无论是通过运行用户服务还是通过从 调用脚本/etc/gdm/PreSession/Default
。
在 RHEL8 下,我们看不到该变量,无论是在运行用户服务时,还是在从 调用它时运行它/etc/gdm/PreSession/Default
。当我以用户身份登录时,即使在使用 时sudo
,我也可以看到该变量,因此环境变量被保留,但不知何故它不适用于该服务和该脚本。
有人能帮我解决这个问题吗?我想我在某处读到过,这可能与 rhel8 下的启动方式有关gdm
,但我不确定这是否是问题所在。
/etc/gdm/PreSession/Default
更新:我现在看到在 下执行的脚本root
。我的印象是它们是以用户身份执行的。
更新 2:看来我无论如何都可以使用票证。我以为它们不在那里,只是因为未设置$KRB5CCNAME
。但无论如何,运行需要票证的命令都可以。