Запуск команды с переменной PATH другого пользователя

Для этого я предлагаю использовать терминальные мультиплексоры типа tmuxили screen. Используя их, вы можете запускать свою программу в фоновой консоли и время от времени проверять ее вывод или делать уведомления в случае какой-либо активности на консоли с вашей программой. Или даже запустите его в отдельной панели и просмотрите вывод своей программы, выполняя другую работу в другой панели.

1
19.05.2021, 22:57
2 ответа

Комментарий @berndbausch верен, что вам нужны одинарные, а не двойные кавычки. Вы также можете воспользоваться опцией -lдля su(1)для имитации полного входа в систему :

.
# sudo su -l deploy -c 'echo $PATH'
2
28.07.2021, 11:30

Когда я попробую:

$ echo $PATH
/home/bbausch/bin:/home/bbausch/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ sudo sh -c "echo $PATH"
/home/bbausch/bin:/home/bbausch/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ sudo sh -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Обратите внимание на одинарные кавычки. Это связано с тем, что оболочка выполняет раскрытие переменных в строках с двойными -кавычками перед вызовом команды. Однако то, как обрабатываются переменные среды, можно настроить в файле sudoers.

0
28.07.2021, 11:30

Теги

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