Ubuntu says “bash: ./program Permission denied” [c

2019-01-04 06:29发布

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?

标签: bash shell sh
3条回答
孤傲高冷的网名
2楼-- · 2019-01-04 06:53

Try this:

sudo chmod +x program_name
./program_name 
查看更多
倾城 Initia
3楼-- · 2019-01-04 07:02

chmod u+x program_name. Then execute it.

If that does not work, copy the program from the USB device to a native volume on the system. Then chmod u+x program_name on the local copy and execute that.

Unix and Unix-like systems generally will not execute a program unless it is marked with permission to execute. The way you copied the file from one system to another (or mounted an external volume) may have turned off execute permission (as a safety feature). The command chmod u+x name adds permission for the user that owns the file to execute it.

That command only changes the permissions associated with the file; it does not change the security controls associated with the entire volume. If it is security controls on the volume that are interfering with execution (for example, a noexec option may be specified for a volume in the Unix fstab file, which says not to allow execute permission for files on the volume), then you can remount the volume with options to allow execution. However, copying the file to a local volume may be a quicker and easier solution.

查看更多
Emotional °昔
4楼-- · 2019-01-04 07:07

Sounds like you don't have the execute flag set on the file permissions, try:

chmod u+x program_name
查看更多
登录 后发表回答