当我在 Chromebook 的 shell 上编译 C++ 代码时,出现错误bash: ./a.out: Permission denied
。即使我使用 sudo: 运行,也会发生这种情况sudo: unable to execute ./a.out: Permission denied
。为什么会发生这种情况?
答案1
问题最终在于文件系统挂载了该noexec
标志,可能是出于安全原因。为了解决这个问题,
- 运行
sudo mount -o remount,rw -o exec PATH/TO/YOUR/FILE
,其中 PATH/TO/YOUR/FILE 是您尝试执行文件的目录。 - 如果出现类似错误
mount: /home/chronos/user/Downloads not mounted or bad option
,请从命令中删除最后一个目录(在本例中为 /Downloads)并重试。继续删除,直到成功。 - 如果出现类似错误
When remounting eCryptfs, you need to pass the mount utility the -i parameter to avoid calling the mount helper
,请运行sudo mount -o remount,rw -io exec PATH/TO/YOUR/
。
您现在应该可以运行该文件了。