OK, estou tendo um pequeno problema com o PATH e executando um processo como outro usuário no Ubuntu.
Primeiro, verificamos onde está o bin:
root@host:~# whereis start-stop-daemon
start-stop-daemon: /sbin/start-stop-daemon /usr/share/man/man8/start-stop-daemon.8.gz
ok, / sbin / start-stop-daemon, portanto, você está em / sbin.
Em seguida, verificamos o caminho como um usuário que queremos executar o aplicativo:
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
em ambos os casos, o PATH é exatamente o mesmo (ou seja, em su normal e com login completo), ainda que haja uma distinção quando realmente queremos executar o comando:
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.
Alguém pode tentar explicar de onde vem a diferença? Porque para mim não deve haver nenhum erro, já que não há diferença no PATH, portanto o $ start-stop-daemon para um dado usuário deve funcionar de qualquer forma ...
também - se eu mudar para usuário diferente ($ su user e $ su - user) então $ start-stop-daemon em ambos os casos ...
o que estou perdendo?