Ubuntu说"bash:./ program Permission denied"

Kia*_*ian 177 bash shell sh

I am running Ubuntu on computer 1 and computer 2. I compiled a C++ program on computer 1, and I can execute it from the terminal using ./program_name. It runs fine.

However, when I try to do this on computer 2, it says: bash: ./program_name: permission denied

What's wrong and what can I do about it?

Eri*_*hil 350

chmod u+x program_name.然后执行它.

如果不起作用,请将程序从USB设备复制到系统上的本机卷.然后chmod u+x program_name在本地副本上执行它.

Unix和类Unix系统通常不会执行程序,除非它被标记为具有执行权限.将文件从一个系统复制到另一个系统(或安装外部卷)的方式可能已关闭执行权限(作为安全功能).该命令chmod u+x name为拥有该文件的用户添加权限以执行它.

该命令仅更改与文件关联的权限; 它不会更改与整个卷关联的安全控件.如果卷上的安全控件干扰执行(例如,noexec可能为Unix fstab文件中的卷指定了一个选项,表示不允许对卷上的文件执行权限),则可以重新安装卷带有允许执行的选项.但是,将文件复制到本地卷可能是一种更快速,更简单的解决方案.

  • 我,今天遇到这个问题,所以我STFW,第一个搜索结果是紫色,这意味着我之前已经读过."这是一个很有希望的迹象",我对自己说,然后点击该搜索结果.它把我带到了这个页面,这个答案在我的案例中不起作用,然后最后上面的评论有效.然后我注意到评论是由我写的,2个月前.哇,真是个生命. (10认同)
  • 我曾经认为这只会在非Unix / Linux本地分区(例如FAT32)上发生,而不会在`/ tmp`上发生。事实证明,我的tmpfs`/ tmp`也遇到相同的问题,我必须将可执行文件复制到真实的本地卷中,即ext4分区中的主文件夹〜中。 (2认同)
  • 很抱歉在此Q / A附带代码...也请认为** noexec **在** fstab **中,它会在没有任何执行特权的情况下装入驱动器...“我听说”“某些人”丢失了很多有点时间寻找那个... (2认同)
  • @SimonOpelt“其他人”很感激 (2认同)

Vit*_*lar 29

试试这个:

sudo chmod +x program_name
./program_name 
Run Code Online (Sandbox Code Playgroud)

  • `sudo` 通常是不必要的,除非程序位于您没有写入权限的目录中(在这种情况下,您首先是如何将其安装到那里的?) (2认同)

小智 10

听起来你没有在文件权限上设置执行标志,请尝试:

chmod u+x program_name
Run Code Online (Sandbox Code Playgroud)