linux中的权限被拒绝

时间:2013-03-02 05:27:32

标签: linux shell

我在linux机器上以root身份登录。现在尝试执行c ++的二进制(测试),但它产生错误“权限被拒绝”。虽然我已经使用chmod + x test给了二进制(test)的许可。

由于

4 个答案:

答案 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一个命令它不能做。

如果它没有被称为测试,并且它不是路径问题,您可以发布一些代码并构建详细信息吗?