chmod 和 chown 区别咋分?记忆小妙招来了!
嘿,你好!今天咱们聊聊 Linux 里两个容易混的命令:chmod
和 chown
。它们都跟文件权限有关,但干的活儿完全不一样。咱先把区别弄清楚,再分享点记忆的小技巧,让你以后再也不会搞混!
先说区别:功能上天差地别
-
chmod
(change mode)这个命令是改文件权限 的,也就是决定谁能读(read)、写(write)、执行(execute)。比如你有个文件
script.sh
,想让它能跑,就得给执行权限:bashchmod +x script.sh
或者用数字方式,比如
755
,表示用户可读写执行(7=4+2+1),组和其他人可读执行(5=4+1)。重点是:它只管权限,不碰归属。 -
chown
(change owner)这个是改文件拥有者 的,也就是决定这文件归谁管。比如你想把
script.sh
给用户alice
:bashchown alice script.sh
还能顺便改组,比如给
dev
组:bashchown alice:dev script.sh
但它不管读写执行那些权限的事儿。
简单说:
chmod
管"能干啥"(权限)。chown
管"归谁"(主人)。
用个例子感受下
假设你有文件 app.log
,现在是 root
的,权限是 600
(只有 owner 可读写)。你想让用户 bob
用这个文件:
-
用
chown
改主人:bashchown bob app.log
文件归
bob
了,但权限还是600
,只有bob
能读写。 -
用
chmod
改权限:bashchmod 644 app.log
现在权限变成 owner 读写(6),其他人可读(4),但主人还是
bob
。
顺序无所谓,但得清楚:chown
不影响权限,chmod
不动主人。
为啥容易混?
名字看着像,都是 "ch" 开头,又都跟文件操作有关。但你仔细看:
chmod
里有 "mode",模式、权限的意思。chown
里有 "own",拥有、归属的意思。
功能上一个管"行为",一个管"身份",完全不重叠。
咋记住?小技巧来啦!
-
联想单词
chmod
:想想 "mode" 是模式,改的是"操作模式",就是权限。chown
:想想 "own" 是拥有,改的是"主人身份"。
-
口诀助记
- "权限动动 mode,chmod 来搞定;主人换换 own,chown 不含情。"
- 简单点:"chmod 管门,chown 换人。"(门是权限,人是主人)
-
场景记忆
- 想让脚本跑起来?改权限,得用
chmod +x
。 - 文件给别人用?改主人,得用
chown
。
- 想让脚本跑起来?改权限,得用
-
数字联想
chmod
爱跟数字打交道(像755
、644
),一看到数字就想到权限。chown
跟用户名、组名走得近(像alice:dev
),看到人名就想到归属。
实战巩固下
- 改权限但不换人:
chmod 700 file.txt
(只有 owner 能用)。 - 换人但不改权限:
chown bob file.txt
(给bob
,权限不变)。 - 一起用:
chown bob:dev file.txt && chmod 640 file.txt
(给bob
和dev
组,owner 读写,组读)。