行者孙Python

护家篇-Day17|认主定籍:chown 修改文件所有者(Windows"所有者" → Linux 属主)

📖 知识点

1. Windows 所有者 vs Linux 属主

 

 

 

WindowsLinux说明
属性→安全→所有者

ls -l 里的属主列

看文件属于谁
修改所有者

chown 新属主 文件

改文件属主

每个 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 细讲),因为改属主是 "动户口本" 级别的操作。

⚠️ 易错提醒

  1. ls -l 的第 3 列是属主、第 4 列是属组,别搞混

  2. 改属主通常要 sudo,普通用户改不了别人的文件属主

  3. -R 可以递归改整个目录(目录及里面的所有文件)

⚔️ Kata 实战任务

任务需求:

  1. 回家,创建 "报告.txt"

  2. 用 ls -l 查看它的属主和属组(应该都是当前用户名)

  3. 用 sudo chown root 报告.txt 把属主改为 root(会提示输入密码)

  4. 再用 ls -l 查看,确认属主已变化

  5. 体会 "户主" 改变的效果

参考代码(在终端依次敲)

 

# 回家,准备文件
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。文件的 "户主" 被过户了。

🧠 思考题

  1. ls -l 输出里,哪一列是属主、哪一列是属组?chown 改的是什么?

  2. 为什么改属主通常要加 sudo?普通用户能随便改别人的文件属主吗?

‹ 返回目录
🏠首页 Python 📦资源 👤关于我