📖 知识点
1. Windows 所有者 vs Linux 属主
| Windows | Linux | 说明 |
|---|---|---|
| 属性→安全→所有者 |
| 看文件属于谁 |
| 修改所有者 |
| 改文件属主 |
每个 Linux 文件都有属主(谁拥有它)和属组(group,属于哪个组)。
ls -l里第 3、4 列就是属主和属组。
2. 查看属主
ls -l 报告.txt
运行示例:
-rw-r--r-- 1 user user 0 Oct 23 10:00 报告.txt
└───┴───
属主 属组(都是user)
💡 生活比喻Windows 属性里能看到 "此文件归张三所有";Linux 的
ls -l也能看到 —— 中间那列写着谁是这个文件的 "户主"。chown就是 "过户":把户主换成别人。
3. chown 修改属主
chown 新属主 文件 # 修改文件属主
chown 新属主:新属组 文件 # 同时改属主和属组
chown -R 新属主 目录 # -R 递归改整个目录及里面所有
sudo chown root 报告.txt # 把属主改为root(需管理员权限)
chown alice:staff 报告.txt # 属主改alice、属组改staff
4. 为什么要 sudo?
普通用户不能把别人的文件 "过户" 给自己,改属主通常需要管理员权限,所以前面常加 sudo:
sudo chown root 报告.txt
sudo临时用管理员身份执行(Day18 细讲),因为改属主是 "动户口本" 级别的操作。
⚠️ 易错提醒
ls -l的第 3 列是属主、第 4 列是属组,别搞混改属主通常要
sudo,普通用户改不了别人的文件属主
-R可以递归改整个目录(目录及里面的所有文件)
⚔️ Kata 实战任务
任务需求:
回家,创建 "报告.txt"
用
ls -l查看它的属主和属组(应该都是当前用户名)用
sudo chown root 报告.txt把属主改为 root(会提示输入密码)再用
ls -l查看,确认属主已变化体会 "户主" 改变的效果
参考代码(在终端依次敲)
# 回家,准备文件
cd ~
touch 报告.txt
# 1. 查看当前属主(第3列是属主)
ls -l 报告.txt
# 2. 把属主改为 root(需要管理员权限,会要密码)
sudo chown root 报告.txt
# 3. 再次查看,属主应该变了
ls -l 报告.txt
运行示例:
user@linux:~$ ls -l 报告.txt
-rw-r--r-- 1 user user 0 Oct 23 10:00 报告.txt
user@linux:~$ sudo chown root 报告.txt
[sudo] password for user:
user@linux:~$ ls -l 报告.txt
-rw-r--r-- 1 root user 0 Oct 23 10:00 报告.txt
💡 观察:报告.txt 的属主从
user变成了root(第 3 列变化),属组还是user。文件的 "户主" 被过户了。
🧠 思考题
ls -l输出里,哪一列是属主、哪一列是属组?chown改的是什么?为什么改属主通常要加
sudo?普通用户能随便改别人的文件属主吗?