(我不太确定这是否可以问这个问题,如果需要请转到另一个Stack Exchange社区 - 如果可能的话)
我在Raspberry Pi上学习C ++(使用Raspian(Debian),顺便说一下),我用Geany IDE创建了一个简单的Hello World程序。我编译,构建程序,然后运行它。但是,我收到一个错误:
./geany_run_script.sh: 5: ./geany_run_script.sh: ./HelloWorld: Permission denied
------------------
(program exited with code: 126)
Press return to continue
编译命令为g++ -c "%f"
,构建命令为g++ -o "%e" "%f"
。
如果您觉得它有用,则文件类型为.cxx
。
由于方便,我想使用Geany运行。不幸的是,即使在使用chmod +x
之后,我也无法以超级用户身份运行终端。
答案 0 :(得分:0)
您的问题似乎与Geany IDE无关。因此,您需要更改已执行文件的权限。请尝试以下命令:chmod 777 your_filename
答案 1 :(得分:0)
要在Linux上运行文件,用户需要在用户或组上拥有x
。这看起来像
POSIX文件系统上的---x--x--x
或十六进制0111。所以chmod +x
应该适用于大多数系统,例如EXT [2 | 3 | 4]或XFS。所以你的开始是正确的。 BTW:当通过Geany编译C文件时,它已经设置为可执行文件。
正如您所提到的,您的USB记忆棒是用FAT32格式化的,这不支持POSIX的东西,所以chmod不会产生任何影响。但是,文件权限是例如执行某些操作是基于用于安装的umask。在传统的Linux系统上,可以在/etc/fstab
中进行配置。使用udev或其他东西,在其他地方它也可以配置(读取:比它取决于你用来装棒的是什么)
另外mount可以将设备设置为noexec
,这对于USB-sticks或未知CD / DVD等设备来说几乎是一个好主意。但是,如果在安装期间设置了此标志,则无法执行该设备上的文件 - 仅允许读取和写入。同样,这可以在/etc/fstab
或其他地方设置,具体取决于您可能使用的内容。
要检查此项,请运行不带和参数的mount命令。它将为您提供一个列表,其中应包含您的USB设备。