Переменные окружения в motd не работают

Я пытаюсь отправить логин пользователя на мою электронную почту с указанием имени и местоположения пользователя. После создания сценария я обнаружил, что переменные среды не могут быть запущены в этом сценарии, и я надеюсь, что кто-то там сможет мне помочь, даже если это проблема безопасности. Спасибо за ваше время

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

ssmtp -oi me@gmail.com << EOF
To: me@gmail.com
Subject: Login

$SUDO_USER" from "$SSH_CLIENT

EOF

вывод электронной почты

Subject: Login  
 from
3
задан 28 May 2012 в 09:28

2 ответа

Если изменить скрипт на:

echo "To: me@gmail.com
Subject: Login

$SUDO_USER from $SSH_CLIENT

" | ssmtp -oi me@gmail.com

Обратите внимание на использование двойных кавычек Переменные должны быть заменены.

0
ответ дан 28 May 2012 в 09:28

В качестве эксперимента я добавил команду env (эквивалентную printenv) в конце /etc/update-motd.d/99-footer в моей системе Ubuntu 12.04.

Когда я снова вошел в систему, в конце моего /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.

0
ответ дан 28 May 2012 в 09:28

Другие вопросы по тегам:

Похожие вопросы: