gpt4 book ai didi

ssh - 如何在 pam_exec 脚本中访问 ssh UserEnvironment var

转载 作者:行者123 更新时间:2023-12-02 14:08:30 27 4
gpt4 key购买 nike

我正在使用 sshd_config 变量 PermitUserEnvironment

#/etc/ssh/sshd_config
PermitUserEnvironment yes

在/root/.ssh/authorized_keys 文件中的每个键上设置类似“REALUSERNAME”的内容。
#/root/.ssh/authorized_keys 
environment="REALUSER=custom_value" ssh-rsa AAAAB3....

但是我无法访问/etc/pam.d/sshd 中由 pam_exec 触发的脚本中的值

我最好的猜测是在设置环境变量之前执行 pam 脚本?那么我的选择是什么?

我试过 pam_env
#/etc/security/pam_env.conf
PAM_REALUSER DEFAULT="unkonwn" OVERRIDE=${REALUSER}

这是我的 pam.d/ssh 文件的自定义部分
#/etc/pam.d/sshd
session required pam_env.so readenv=1
session optional pam_exec.so seteuid /usr/local/bin/scripts/my_script

甚至像 SSH_CONNECTION 这样的变量似乎都不可用,这让我感觉很奇怪。这些信息在脚本执行时肯定是可用的,但变量没有设置或者我做错了。

我曾经(成功地)在/etc/profile 中触发脚本,所以我非常确信问题不在我的自定义脚本中

最佳答案

But I have trouble accessing the value in the script triggered by pam_exec in /etc/pam.d/sshd

my best guess is that the pam script is executed before the environment variables are set? So what are my options?


是的你是对的。来自授权 key 的环境变量设置在 do_setup_env()函数,在 pam_session之后调用.
如果你想访问这些变量,我建议你设置 ForceCommand或用户的特殊外壳,在您评估变量后,它将包装在普通外壳上。
但请注意,将此项设置为无限制的 root 将允许您的用户做任何他们想做的事情(甚至更改 key 、您的环境变量),无论您的设置如何。

关于ssh - 如何在 pam_exec 脚本中访问 ssh UserEnvironment var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com