2

Когда я запускаю SSH в Linux, я хочу, чтобы файл /etc/profile сохранял результаты команды whoami в глобальной переменной среды.

Если бы я должен был войти в систему root с помощью команды sudo su - , я бы не хотел, чтобы эта команда запускалась снова при переходе в root. Я хочу, чтобы он использовал результат whoami с моим обычным именем пользователя до того, как я стал пользователем root, и мне нужно получить доступ к этой переменной как пользователь root, даже если он снова запустит файл /etc/profile когда я войду в систему как root.

Что я могу сделать, чтобы выполнить эту команду только один раз в команде /etc/profile ?

2 ответа2

5

Для сохранения переменных среды после оболочки входа в систему требуется ключ -m . Сохранение переменных среды после sudo требует изменения env_keep в /etc/sudoers . Даже тогда делать это ненадежно.

К счастью, есть и другие способы сделать это. Например, ваш tty принадлежит пользователю, который вы изначально вошли как. Так что добавьте это в конец /etc /profile:

TTY=$(tty)
if [ -n "$TTY" ]; then
    WHOAMI=`ls -al $TTY | awk '{print $3}'`
fi

Вы будете устанавливать переменную WHOAMI для владельца tty, если он есть, после sudo и non-sudo su для root:

[corman@localhost ~]$ sudo su -
Password:
[root@localhost ~]# echo $WHOAMI
corman
[root@localhost ~]# logout
[corman@localhost ~]$ su -
Password:
[root@localhost ~]# echo $WHOAMI
corman
[root@localhost ~]#
3

Вы также можете использовать logname вместо whoami !

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .