超级用户“权限被拒绝”

我想在根目录下运行一个脚本。该脚本位于/opt/poky/1.6/xx。
如果我以超级用户身份登录Ubuntu 14.04,使用sudo -i和我的密码,我可以使用ls /opt/poky/1.6/命令看到这个文件。
当我尝试以用户模式运行该文件,使用sudo /opt/poky/1.6/xx命令时,它要求我输入sudo密码。我使用我的普通机器密码,但它显示“找不到命令”。
当我切换回超级用户模式,使用sudo -i命令,并以/opt/poky/1.6/xx的形式运行该文件时,它显示“权限被拒绝”。
如果我在超级用户模式下切换到该目录,使用cd /opt/poky/1.6/命令,然后使用vi xx命令查看该文件,我就没有问题。
如何解决超级用户模式下的“权限被拒绝”或“找不到命令”的问题?

2sudo su(永久的根终端)然后无需使用sudo运行脚本(因为您已经是root)。顺便说一句,我不确定您是否可以通过键入脚本名称来启动脚本,应该是bash /opt/scriptpython /opt/script或其他所需的方式来运行脚本。 - MrVaykadji
文件是否具有可执行权限?这可能是为什么您在尝试以sudo运行时看到“权限被拒绝”的原因。 - Chisholm
@MrVaykadji,OP正在使用sudo -i命令,它等同于sudo su。事实上,使用sudo su是没有意义的,只需根据您的设置使用sudo -i或简单的su即可。至于是否需要一个名称,这取决于脚本是否有正确的shebang行 - terdon
1请编辑您的问题并向我们展示ls -l /opt/poky/1.6/xx的输出,并告诉我们xx是什么。这是什么类型的脚本?理想情况下,我们想看到脚本本身,但至少我们需要知道它是什么。 - terdon
1个回答

"Permission Denied"这个错误通常意味着您对文件没有执行权限。要修复这个问题,请以root用户身份运行chmod +x <filename>命令。现在,root用户可以使用./<filename>来运行该文件。
“Command Not Found” 可以有很多不同的意思。首先,你需要在运行不在你的“$PATH”变量中的文件时,使用“./”或绝对路径。(例如,“./test.sh”或“/home/user/bin/test.sh”)
然而,“Command Not Found” 也可以意味着缺少某个库。请检查是否具备运行该文件所需的所有依赖项。

如果我的回答解决了你的问题,请点击我的帖子旁边的勾选标记。谢谢! - Kaz Wolfe

  • 相关问题