/usr/include 默认权限为 drwxr-xr-x(755),root 所有,普通用户可读可进入但不可写;因其属系统关键路径,写入会破坏编译环境与安全性,故禁止普通用户修改,推荐通过 /usr/local/include 或 -i 选项扩展头文件路径。

/usr/include 是 Linux 系统中存放 C 语言标准头文件(如 stdio.h、stdlib.h)的核心目录,供编译器(如 gcc)在预处理阶段查找和包含。它的访问权限设计以**安全性与可用性平衡**为原则,通常不是开放写入,但需保证普通用户可读、可进入。
默认权限通常是 drwxr-xr-x(即 755)
执行 ls -ld /usr/include 一般会看到类似输出:
含义分解:
- d:表示这是一个目录
- rwx(属主):root 用户可读、可写、可进入(即搜索该目录)
- r-x(属组):同属 root 组的用户可读、可进入,但不可写
- r-x(其他用户):所有普通用户可读、可进入,但不可写或修改
为什么普通用户需要读和执行权限?
编译程序时,gcc 会递归扫描 /usr/include 及其子目录(如 /usr/include/asm、/usr/include/linux)来解析 #include <xxx.h></xxx.h>。这要求:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 读权限(r):能打开并读取头文件内容
-
执行权限(x):能“进入”该目录(即执行
chdir或路径解析),否则即使有读权限也无法访问子目录下的文件
缺少任一权限,编译可能报错:fatal error: xxx.h: No such file or directory,尤其在权限被意外收紧时。
为什么禁止普通用户写入?
/usr/include 属于系统关键路径,由包管理器(如 apt、dnf、pacman)统一维护。允许普通用户写入会导致:
- 头文件被误删或覆盖,引发大量编译失败
- 引入非标准或恶意头文件,造成安全隐患(如宏劫持、符号污染)
- 破坏系统一致性,影响软件包升级与依赖验证
因此,该目录所有权固定为 root:root,且不启用 setgid(即新建文件不会自动继承 group 权限),也不开放 world-writable。
特殊情况下的权限调整建议
除非明确需要本地开发环境隔离(如构建交叉编译工具链),否则不建议修改 /usr/include 的权限或归属。若需添加自定义头文件:
- ✅ 推荐方式:放入
/usr/local/include(权限通常也是 755,属主 root,但更适配本地扩展) - ✅ 替代方式:使用
-I/path/to/myheaders让 gcc 优先搜索自定义路径 - ❌ 避免:直接 chmod 777 或 chown 普通用户 —— 违反最小权限原则,易引发系统级问题










