System Shell Scripts Can't Find my Command in PATH
我在
为了查看来自
1 | Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/scripts" |
path="$path:/usr/local/scripts"导出路径
env-supath=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/scriptsenv_path path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/local/scripts
path="$path:/usr/local/scripts"导出路径
path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/scripts"
这在大多数情况下都有效,但是…
我有两个脚本,在它们的代码中,调用来自
第一个是
第二个是
1 | session optional pam_exec.so /usr/local/scripts/notif-login |
如果我从我的终端shell运行这两个脚本,另一个用户,使用sudo,不使用sudo,在su之后,或者使用root登录之后,它都正常工作。但是当系统运行它时(第一次是网络初始化时,第二次是通过ssh),两个都无法从
有没有其他地方我必须设置路径?
bash/sh不会为"非交互shell"读取
变化:
1 | PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" |
到:
1 | PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/scripts" |
编辑
这应该在Raspbian下工作,在Debian下工作。如果没有,您可能需要在其中一个脚本的开头修改路径。对于bash下的非交互式会话,不会执行任何正常的启动文件。还可以尝试输出