我正在尝试将用户登录日志连同用户名和位置一起发送到我的电子邮件。编写脚本后,我发现环境变量无法在此脚本中运行,我希望有人能帮助我实现这一点,即使这是一个安全问题。感谢您的时间
/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]
注意使用双引号。然后应替换变量。