软链接的权限仅控制能否修改或删除链接本身,访问目标文件时实际生效的是目标文件的权限;chmod默认修改目标文件权限,需加-h参数才修改软链接自身权限。

软链接文件本身有权限,但真正起作用的是目标文件的权限。软链接的权限只控制“能否修改或删除这个链接”,不控制“能否访问链接指向的内容”。
软链接自身的权限含义
用 ls -l 查看软链接时,开头的 lrwxrwxrwx 中的 rwx 是软链接文件自身的权限:
- r(读):允许读取链接内容,即查看它指向哪个路径(比如用 readlink linkname)
- w(写):允许修改链接目标,比如用 ln -sf new_target linkname 覆盖原链接
- x(执行):对软链接本身无实际意义——它不是可执行程序;但若链接指向的是可执行文件,x 权限不影响执行能力
访问软链接时真正检查的权限
当你通过软链接打开、读取或执行目标文件时,系统会:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 先验证你对软链接本身是否有读权限(仅用于解析路径,多数情况默认有)
- 再验证你对目标文件或目录是否具备对应操作所需的权限
- 例如:cat symlink 成功与否,取决于你对目标文件是否有读权限,与 symlink 的 r 权限无关
为什么 chmod 对软链接影响有限
chmod 默认修改的是目标文件的权限,不是软链接本身:
- 运行 chmod 600 symlink 实际改的是目标文件的权限
- 要改软链接自身的权限,需加 -h 参数:chmod -h 644 symlink
- 但即使把软链接设为 ------x,只要目标文件可读,cat symlink 仍能成功
典型误区与验证方法
常见误解是“给软链接加 x 就能执行目标脚本”。正确逻辑是:
- 目标文件必须有 x 权限,且是可执行格式(如 shell 脚本以 #!/bin/bash 开头)
- 软链接只要有读权限(通常默认有),就能被解析并触发目标执行
- 验证方式:ls -l symlink 看链接自身权限,ls -l $(readlink symlink) 看目标权限

















