命令行 – 无法执行.out文件,获得权限被拒绝

我编写了一个C程序并将其编译为生成a.out文件.但是,每当我尝试运行它时,我都会被拒绝.我读到我们可以使用sudo,但我无法让它工作.我使用像sudo“./a.out”之类的东西,但这也行不通.

编辑:

这是我尝试“./a.out”时得到的消息.

bash: ./a.out: Permission denied

解决方法:

通常,g为创建的文件提供执行权限.如果未传递-o选项,则该文件将命名为a.out.

您的文件没有设置执行位的两个可能原因及其解决方案:

> umask value设置为类似0133的值,从而防止执行位被设置.解决方案:显式设置权限:

chmod 755 a.out
>您正在处理的文件系统不支持Linux权限.如果您将文件放在FAT32格式的闪存驱动器上,可能就是这种情况.解决方案:备份文件并将其格式化为ext2,或者使用fmask = 0022或umask = 0022(省略fmask)安装驱动器.有关详细信息,请参阅manual page of mount上的“脂肪装载选项”部分.

对于没有设置执行位的bash脚本,可以运行bash file.sh.对于具有可执行内容的所有文件(具有shebang行#!/ path / to / interpreter set的编译文件和文件)存在这样的特征.要在没有设置执行位的情况下执行文件,请使用特殊文件/lib/ld-linux.so.2(或64位应用程序的/lib/ld-linux-x86-64.so.2)来运行这样的程序:

/lib/ld-linux-x86-64.so.2 a.out
上一篇:如何从头开始编译C编译器,然后从头开始编译Unix / Linux


下一篇:volatile_Keyword