我在计算机1和计算机2上运行Ubuntu,我在计算机1上编译了一个C++程序,我可以使用./program_name
在终端上执行它。它运行得很好。
但是,当我尝试在计算机2上执行此操作时,它显示:bash: ./program_name: permission denied
哪里出了问题,我能做些什么?
发布于 2013-09-23 21:39:17
chmod u+x program_name
。然后执行它。
如果不起作用,请将程序从USB设备复制到系统上的本机卷。然后在本地副本上执行chmod u+x program_name
。
Unix和类Unix系统通常不会执行程序,除非它被标记为具有执行权限。将文件从一个系统复制到另一个系统(或挂载外部卷)的方式可能关闭了执行权限(作为安全功能)。命令chmod u+x name
为拥有该文件的用户添加执行该文件的权限。
该命令仅更改与文件关联的权限;它不更改与整个卷关联的安全控制。如果是卷上的安全控制干扰了执行(例如,可能为Unix fstab
文件中的某个卷指定了noexec
选项,这表示不允许该卷上的文件具有执行权限),则可以使用允许执行的选项重新装入该卷。但是,将文件复制到本地卷可能是更快、更容易的解决方案。
发布于 2013-09-23 21:40:06
试试这个:
sudo chmod +x program_name
./program_name
发布于 2013-09-23 21:41:24
听起来您没有在文件权限上设置execute标志,请尝试:
chmod u+x program_name
https://stackoverflow.com/questions/18960689
复制相似问题