我在计算机 1 和计算机 2 上运行 Ubuntu。我在计算机 1 上编译了一个 C++ 程序,我可以使用 ./program_name
从终端执行它。它运行良好。
但是,当我尝试在计算机 2 上执行此操作时,它显示: bash: ./program_name: permission denied
出了什么问题,我该怎么办?
原文由 Kian 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答496 阅读✓ 已解决
chmod u+x program_name
。然后执行它。如果这不起作用,请将程序从 USB 设备复制到系统上的本机卷。然后
chmod u+x program_name
在本地副本上执行。Unix 和类 Unix 系统通常不会执行程序,除非它被标记为允许执行。您将文件从一个系统复制到另一个系统(或安装外部卷)的方式可能已关闭执行权限(作为一项安全功能)。命令
chmod u+x name
为拥有该文件的用户添加执行它的权限。该命令仅更改与文件关联的权限;它不会更改与整个卷关联的安全控制。如果是卷上的安全控制干扰了执行(例如,可以为 Unix 中的卷指定
noexec
选项fstab
文件,该文件表示不允许执行卷上文件的权限),然后您可以使用选项重新安装卷以允许执行。但是,将文件复制到本地卷可能是一种更快、更简单的解决方案。