当前位置: 首页 > 知识库问答 >
问题:

系统Shell脚本在路径中找不到我的命令

夏建弼
2023-03-14
Defaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/scripts"

sudo nano/etc/login.defs

ENV_SUPATH path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/sbin:/usr/local/scripts ENV_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/local/games:/usr/games:/usr/local/scripts

sudo nano/root/.bashrc

PATH=“$PATH:/usr/local/scripts”导出路径

sudo nano/etc/environment

path=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/scripts”

大多数情况下都是这样,但是...

我有两个脚本,在它们的代码中调用/usr/local/scripts/中的脚本,但是它找不到我的脚本!

第一个是/etc/network/if-up.d/sendip,它在网络堆栈初始化时作为root运行。

第二个是/usr/local/scripts/notif-login,它以root身份从pam通过/etc/pam.d/sshd运行:

session optional pam_exec.so /usr/local/scripts/notif-login

如果我从我的终端shell、另一个用户、使用sudo、不使用sudo、su之后运行这两个脚本,或者使用root登录,它都可以正常工作。但当它由系统运行时(第一次是网络初始化时,第二次是通过SSH运行),两者都无法运行/usr/local/scripts中的脚本。

还有别的地方要我定路吗?

共有1个答案

仲学真
2023-03-14

bash/sh将不读取“非交互shell”的/etc/profile,例如您提到的脚本从其中运行的shell。我不确定您使用的是哪个发行版,但您应该能够将它添加到/etc/environmentpath定义中。Ob Ubuntu,例如:

更改:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

致:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/scripts"
 类似资料:
  • 我得到以下Tomcat错误: 发布到Tomcat v8.5 Server atlocalhost...遇到问题。发布失败并出现多个错误。 细节: 发布失败,出现多个错误 找不到文件:C:\Users…\HerramentationLogica\target\m2e wtp\web资源\META-INF\MANIFEST.MF。 未找到文件:C:\Users…\HerramentationLogic

  • 我已经编写了一个基本的jsp代码,用于存储和检索数据库中的数据。在此之前,我正在检查用户验证。 当我点击提交按钮时,它将重定向到我的jsp页面。 我已经写了一个数据库。属性文件分开。 当我给出了读取属性文件的完整路径时。,程序执行正常。(这不是像下面这样硬代码的最佳方式)。 FileInputStream in=new FileInputStream("C:\Program Files\Apach

  • 我以管理员权限运行命令提示符卸载我电脑上的Ananconda,在此过程之后,我重新打开cmd,发现cmd开头有一行“系统找不到指定的路径”。 我可以保证我的cmd以前没有这一行,我该如何修复它?这是我应该注意的严重错误吗? 非常感谢。 “系统找不到指定的路径。”

  • 1)当我打开新的CMD(Win R= 2) 当我执行一些命令时,如cmd/C dir(或cmd/C php-v)或其他命令(第2行) 3)(最讨厌的)当我运行函数从PHP或Node.js或可能任何脚本语言。( 1) 当我直接从cmd(或mingw,…)执行命令时 让我们从cmd的简单命令开始。 php-r“exec('dir',$stdout,$stderr);print(内爆(\”\n\“,$s

  • 问题内容: 我正在尝试从cron运行python脚本,但是它无法正常运行,所以我假设它的路径env变量不同。无论如何,要在python脚本中更改变量吗? 问题答案: 您无需从python脚本中设置PATH。取而代之的是 在您的crontab的顶部。然后,这些环境变量将可用于通过您的crontab运行的所有cron作业。