在 Debian(以及大多数 Linux 发行版)中,软链接(symbolic link, symlink)本身的权限通常不需要、也不能单独设置,它始终表现为 rwxrwxrwx (777)。真正起作用的是软链接指向的目标文件/目录的权限。
下面分情况说明。
创建软链接:
ln -s /path/to/target linkname
查看权限:
ls -l linkname
你会看到类似:
lrwxrwxrwx 1 user user 15 date linkname -> /path/to/target
✅ 这是正常现象
l 表示软链接rwxrwxrwx 是固定显示,不代表真实权限控制ln -s /var/www/html/app /home/user/app
权限控制取决于:
/var/www/html/app
设置目标权限:
chmod 755 /var/www/html/app
chown user:user /var/www/html/app
此时:
/home/user/app 时/var/www/html/app 的权限chmod 600 linkname
❌ 实际上修改的是目标文件权限
✅ 软链接本身仍显示 777
原因:
ln -s /data/logs /var/log/myapp
如果 /data/logs 权限不足:
cd /var/log/myapp
# Permission denied
解决:
chmod 755 /data/logs
示例:
chmod 700 /data/private
这样即使软链接存在,别人也无法访问。
| 项目 | 说明 |
|---|---|
| 软链接权限 | 始终显示 777,不可控 |
| 实际权限 | 由目标文件/目录决定 |
| chmod 软链接 | 实际修改的是目标 |
| 安全控制 | 控制目标 + 父目录权限 |
如果你有具体场景(如 Web 服务、Docker、Nginx、多用户环境),可以贴出来,我可以给你更精确的权限配置方案。