Проблема с PATH при использовании $ SU

Хорошо, у меня есть небольшая проблема с PATH, и я запускаю процесс как другой пользователь под Ubuntu.

Во-первых, мы проверяем, где находится корзина:

root@host:~# whereis start-stop-daemon
start-stop-daemon: /sbin/start-stop-daemon /usr/share/man/man8/start-stop-daemon.8.gz

ок, / sbin / start-stop-daemon, так что в / sbin. затем мы проверяем путь как пользователь, которого хотим запустить приложение:

root@host:~# su wojtek -c "echo $PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

root@host:~# su -l wojtek -c "echo $PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

в обоих случаях PATH абсолютно одинаков (т.е. в обычном su и при полном входе в систему), но есть различие, когда мы на самом деле хочу выполнить команду:

root@host:~# su wojtek -c "start-stop-daemon"
bash: start-stop-daemon: command not found

root@host:~# su -l wojtek -c "start-stop-daemon"
start-stop-daemon: need one of --start or --stop or --status
Try 'start-stop-daemon --help' for more information.

Может кто-нибудь попытаться объяснить, откуда взялась разница? Потому что для меня не должно быть никаких ошибок, так как нет разницы в PATH, поэтому $ start-stop-daemon для данного пользователя должен работать в любом случае ...

также - если я переключаюсь на другого пользователя ($ su user и $ su - user), то $ start-stop-daemon в обоих случаях ...

Чего мне не хватает?

0
задан 19 June 2013 в 16:11

1 ответ

Путь, кажется, одинаков в ваших двух утверждениях, потому что $ PATH был расширен в двойных кавычках перед передачей команде su .

Попробуйте это с одинарными кавычками, и я думаю, вы будете приятно удивлены:

su wojtek -c 'echo $PATH'

против

su -l wojtek -c 'echo $PATH'
0
ответ дан 19 June 2013 в 16:11

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

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