我在linux机器上以root身份登录。现在尝试执行c ++的二进制(测试),但它产生错误“权限被拒绝”。虽然我已经使用chmod + x test给了二进制(test)的许可。
由于
答案 0 :(得分:3)
如果文件测试位于单独的挂载点上,并且该挂载点使用noexec标志挂载,则您将无法在其上执行任何二进制文件。
从挂载联机帮助页:
noexec Do not allow direct execution of any binaries on the mounted filesystem.
您可以使用以下命令查看挂载点的挂载点:
mount -l
答案 1 :(得分:0)
如果二进制test
位于目录/ dir1 / dir2中,请执行以下任一操作(使用绝对路径):
/dir1/dir2/test
或导航到包含该程序的目录并使用./
前缀(也称为相对路径)
cd /dir1/dir2
./test
答案 2 :(得分:0)
在ls -l /path/to/your/file
之后尝试chmod +x /path/to/your/file
命令。
之后,检查是否存在可执行位 x ,即查看将要打印的第一个字符串,它应该类似于-rwxrwxr-x
。
如果您没有这三个x
,那么 chmod 就会出现问题。可能你不是根。
如果您有x
但无法执行该程序,则问题是
打电话给你的程序。您应该尝试cd
进入该文件夹
程序所在的位置然后执行它
./program_name
。
答案 3 :(得分:0)
在您的代码出现之前,有一个名为“test”的命令可能在您的路径中,这就是您输入“./test”而不仅仅是“test”的原因,它可以在/ usr / bin /中找到测试,可能。 (“测试”以查找您的系统)
我不知道为什么/ usr / bin / test会因为该错误而失败,除非你的测试软件接受参数并且你给(在我的系统上)/ usr / bin / test一个命令它不能做。
如果它没有被称为测试,并且它不是路径问题,您可以发布一些代码并构建详细信息吗?