У меня есть скрипт php, запущенный в cronjob на сервере.
Однако я неожиданно получаю разные $ PATH от одного и того же пользователя в зависимости от того, как я выполняю команду.
Я захожу как пользователь ubuntu
:
ubuntu@:$ echo $PATH
/home/ubuntu/bin:/home/ubuntu/.local/bin:/home/ubuntu/.nvm/versions/node/v12.3.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Я тогда sudo su bitbucket
:
bitbucket@:$ echo $PATH
/home/bitbucket/.nvm/versions/node/v12.3.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Я выполняю скрипт из cronjob, работающего как bitbucket, и выводю следующую отладку в файл журнала:
$ whoami
bitbucket
Вышеприведенное доказывает, что пользователь является bitbucket, тогда:
$ echo $PATH
/usr/bin:/bin
Обратите внимание, я не работаю как sudo. Я использую sudo для переключения пользователей, но не использую sudo для echo $PATH
.
Почему один и тот же пользователь имеет 2 разные переменные $ PATH?