mod 中的环境变量不起作用

mod 中的环境变量不起作用

我正在尝试将用户登录日志连同用户名和位置一起发送到我的电子邮件。编写脚本后,我发现环境变量无法在此脚本中运行,我希望有人能帮助我实现这一点,即使这是一个安全问题。感谢您的时间

/etc/update-motd.d/99-footer

ssmtp -oi [email protected] << EOF
To: [email protected]
Subject: Login

$SUDO_USER" from "$SSH_CLIENT

EOF

电子邮件输出是

Subject: Login  
 from

答案1

作为一项实验,我在我的 Ubuntu 12.04 系统上的末尾添加了一个env命令(相当于)。printenv/etc/update-motd.d/99-footer

当我再次登录时,我的文件末尾添加了以下几行/etc/motd

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/

那么$PATH$PWD仅有的99-footer运行时设置的环境变量。这就是为什么$SUDO_USER$SSH_CLIENT没有被扩展。

您需要从其他地方发送该电子邮件,而不是从更新的过程发送/etc/motd

答案2

如果将脚本更改为:

echo "To: [email protected]
Subject: Login

$SUDO_USER from $SSH_CLIENT

" | ssmtp -oi [email protected]

注意使用双引号。然后应替换变量。

相关内容