Переменные окружения в motd не работают - proUbuntu
3 голосов
/ 27 мая 2012

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

/ 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

Ответы [ 2 ]

2 голосов
/ 24 июля 2012

В качестве эксперимента я добавил команду 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 - это переменные окружения only , которые устанавливаются при работе 99-footer. Вот почему $SUDO_USER и $SSH_CLIENT не расширяются.

Вам необходимо отправить это электронное письмо откуда-то еще, а не из процесса, который обновляет /etc/motd.

0 голосов
/ 24 июля 2012

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

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

$SUDO_USER from $SSH_CLIENT

" | ssmtp -oi me@gmail.com

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

...