在 CentOS 上用 gcc 编译时遇到“权限错误(Permission denied)”,常见原因和对应解决办法如下:
报错示例:
bash: ./a.out: Permission denied
# 或
gcc: error: ... Permission denied
✅ 解决:
chmod +x a.out
./a.out
如果是脚本:
chmod +x test.sh
报错示例:
gcc: error: output file 'a.out' cannot be opened: Permission denied
✅ 解决:
# 查看权限
ls -ld .
# 没权限就换个目录
mkdir ~/code
cd ~/code
gcc test.c
或:
sudo chown -R $USER:$USER .
系统目录普通用户不能写。
✅ 解决:
# 把代码复制到用户目录
cp test.c ~/test.c
cd ~
gcc test.c
或(不推荐):
sudo gcc test.c
ls -l test.c
# -rw------- 1 root root test.c
✅ 解决:
sudo chown $USER:$USER test.c
mount | grep ' on / '
如果看到 ro(read-only):
✅ 解决:
sudo mount -o remount,rw /
gcc: Permission denied
✅ 排查:
getenforce
临时关闭测试:
sudo setenforce 0
长期解决(示例):
sudo ausearch -m avc -ts recent
sudo restorecon -Rv ~/code
mkdir ~/code
cd ~/code
cp /path/to/test.c .
gcc test.c
./a.out
你可以把 完整的报错信息 或 命令 + 目录结构 发出来,我可以直接帮你定位是哪一种情况。