温馨提示×

centos gcc报权限错误咋解决

小樊
48
2026-10-17 09:25:54
栏目: 智能运维

在 CentOS 上用 gcc 编译时遇到“权限错误(Permission denied)”,常见原因和对应解决办法如下:


一、常见原因 & 解决办法

1️⃣ 没有执行权限(最常见)

报错示例:

bash: ./a.out: Permission denied
# 或
gcc: error: ... Permission denied

✅ 解决:

chmod +x a.out
./a.out

如果是脚本:

chmod +x test.sh

2️⃣ 当前目录没有写权限(无法生成 a.out)

报错示例:

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 .

3️⃣ 在 /usr、/opt 等系统目录编译

系统目录普通用户不能写。

✅ 解决:

# 把代码复制到用户目录
cp test.c ~/test.c
cd ~
gcc test.c

或(不推荐):

sudo gcc test.c

4️⃣ 用的文件/目录属于 root

ls -l test.c
# -rw------- 1 root root test.c

✅ 解决:

sudo chown $USER:$USER test.c

5️⃣ 文件系统是只读的(rare)

mount | grep ' on / '

如果看到 ro(read-only):

✅ 解决:

sudo mount -o remount,rw /

6️⃣ SELinux 限制(CentOS 特有)

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

三、如果你愿意

你可以把 完整的报错信息 或 命令 + 目录结构 发出来,我可以直接帮你定位是哪一种情况。

0 踩