如何sudo其父目录在$ PATH中的bash脚本?
例如
~/Desktop/scripts
是$PATH
cat ~/Desktop/scripts/hi
#!/bin/bash
echo hi
我已经试过(当前目录为〜):
hi # CLI said "hi"
sudo -E hi # sudo: hi: command not found
se hi # sudo: hi: command not found # alias se="sudo -E "
如何sudo的脚本?
尝试以下操作:
sudo PATH="${PATH}" bash -c "hi"
有关说明,请参见man sudoers的(5):
默认情况下,env_reset选项启用。这会导致命令在新的最小环境中执行。在AIX(以及没有PAM的Linux系统)上,环境使用/ etc/environment文件的内容进行初始化。除了env_check和env_keep选项允许的调用过程的变量以外,新环境还包含TERM,PATH,HOME,MAIL,SHELL,LOGNAME,USER,USERNAME和SUDO_ *变量。这实际上是环境变量的白名单。
Thx。但是'sudo:hi:command not found':( –
将〜/桌面/脚本更改为完整路径,例如/ home/user/Desktop/scripts –
您的'PATH'点是正确的''sudo PATH =“$ {PATH }“bash hi'的作品! –
第一修复她爆炸,应该是'#!/ bin中/不带空格 – Inian
你可以尝试为'须藤-E庆典〜/ hi' – Inian
@Inian bash'我有固定的她 - 爆炸和'sudo -E bash〜/ hi'报告'没有这样的文件或目录' –