https://stackoverflow.com/questions/12996397/command-not-found-when-using-sudo正是我正在寻找的东西,但没有一个答案对我有用。我正在使用 Arch Linux。我正在尝试在当前工作目录中运行命令
Workspace$ sudo ./SomeBinary -some_args
sudo: ./<SomeBinary>: command not found
sudo pwd
/home/SomeUser/Workspace
我的/etc/sudoers
档案
Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
Defaults env_keep += "HOME"
Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
Defaults env_keep += "QTDIR KDEDIR"
Defaults env_keep += "XDG_SESSION_COOKIE"
Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults mail_badpass
Defaults log_output
Defaults!/usr/bin/sudoreplay !log_output
Defaults!/usr/local/bin/sudoreplay !log_output
Defaults!REBOOT !log_output
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
#includedir /etc/sudoers.d
我已经使用远程目录安装了工作目录sshfs
。
sshfs RemoteUbuntu.local:/media/ExtHDD/Workspace ~/Workspace
遥控器已BTRFS
格式化。
答案1
我怀疑这里还有其他东西在起作用./SomeBinary
。我在 CentOS 7 机器上运行了这两个测试sudo
,它们都没有问题。
$ cat sudy.bash
#!/bin/bash
whoami
echo "hi"
pwd
其结果是这样的输出:
$ sudo ./sudy.bash
root
hi
/home/vagrant
如果我将whoami
可执行文件复制到我的/home/vagrant
目录并运行它:
$ which whoami
/usr/bin/whoami
$ cp /usr/bin/whoami .
$ ll whoami
-rwxr-xr-x 1 vagrant vagrant 28984 Aug 5 00:23 whoami
当我通过以下方式运行它时sudo
:
$ sudo ./whoami
root
找不到命令
奇怪的是,我可以引发该消息的唯一方法sudo
是从脚本中删除执行位sudy.bash
。例如:
$ chmod -x sudy.bash
像我自己一样奔跑
$ ./sudy.bash
-bash: ./sudy.bash: Permission denied
通过 sudo 运行
$ sudo ./sudy.bash
sudo: ./sudy.bash: command not found
笔记:复制的sudo ./whoami
也会发生同样的情况。