linux权限控制核心是chmod管“读写执行”,chown管“归属权”;ls -l显示10字符权限串,首字符为类型,后9位分属主、组、他人各3位,r=4、w=2、x=1,目录需x才可进入。

Linux 权限控制的核心在于分清“谁对什么文件能做什么”。chmod管的是“能不能读、写、执行”,chown管的是“这个文件到底归谁管、属于哪个组”。两者配合使用,才能真正落实最小权限原则。
看懂权限字符串:从 ls -l 开始
运行 ls -l filename,看到类似 -rw-r--r-- 这样的字符串,它由 10 个字符组成:
- 第 1 位是文件类型:
-表示普通文件,d表示目录,l表示软链接 - 第 2–4 位(如
rw-)是所有者权限 - 第 5–7 位(如
r--)是所属组权限 - 第 8–10 位(如
r--)是其他人权限
每个位置的 r、w、x 分别代表读、写、执行;- 表示无该权限。目录的 x 特别关键——没有它,用户连 cd 进入或 ls 列出内容都不行。
chmod:精准调整访问能力
它不改变文件“归谁”,只决定“谁能怎么用”。
-
符号模式直观易记:
chmod u+x script.sh给所有者加执行权;chmod go-w config.txt移除组和其他人的写权限 -
数字模式适合批量设定:
chmod 644 file→ 所有者读写(6),组只读(4),其他人只读(4);chmod 755 dir→ 目录需有执行位才可进入 - 对目录递归设权加
-R:chmod -R 644 /var/www/html/*,但慎用于系统目录
chown:明确归属关系
只有 root 或具有对应能力的用户才能运行,普通用户只能改自己文件的属组(且目标组必须是其所属组之一)。
- 只改所有者:
sudo chown nginx log.txt - 只改属组:
sudo chown :www-data access.log(注意冒号不能省) - 同时改属主和属组:
sudo chown nginx:nginx /usr/share/nginx/html/ - 递归修改整个目录树:
sudo chown -R www-data:www-data /var/www/,Web 部署常见操作 - 复制参考文件的归属:
chown --reference=template.conf new.conf,避免手输错名
常见误区与安全提醒
权限问题常因细节疏忽导致失败:
- 写
chown groupname file实际改的是属主,不是属组;要改组必须写成chown :groupname file - 没加
-R修改目录,只会改目录本身,子项仍保留旧归属,网站可能报 500 错误 - 属组名拼错时命令不报错,但
ls -l中会显示数字 GID(如root 1001),说明组不存在 - 不要滥用
chmod 777或chown -R root:root /,这是最典型的越权操作,极易引发安全风险











