主题
03 · 文件系统、权限与用户组
目标:读懂
ls -l,会用chmod/chown,并知道sudo的边界。
1. 环境前提
- 已能 SSH 进练习机(见 02)
- 在
~/lab下操作;涉及系统目录时用sudo,且先想清楚
2. 读懂 ls -l
bash
cd ~/lab
echo hello > demo.txt
ls -l demo.txt1
2
3
2
3
典型一行:
text
-rw-rw-r-- 1 ubuntu ubuntu 6 Jul 17 10:00 demo.txt
│││││││││ │ │ │ │
│││││││││ │ │ │ └─ 大小等
│││││││││ │ │ └─ 组
│││││││││ │ └─ 所有者
│└┴┴┴┴┴┴┴─ 权限九位:用户 / 组 / 其他人
└─ 类型:- 文件 d 目录 l 符号链接1
2
3
4
5
6
7
2
3
4
5
6
7
| 符号 | 含义 |
|---|---|
r | 读(目录:可列出名) |
w | 写(目录:可增删项) |
x | 执行(目录:可 cd 进入) |
数字记法(常用):
| 八进制 | 含义 |
|---|---|
755 | 所有者 rwx,其他人 rx(脚本/目录常见) |
644 | 所有者 rw,其他人 r(普通文件常见) |
600 | 仅所有者 rw(密钥、私密配置) |
700 | 仅所有者 rwx(私密目录) |
bash
chmod 644 demo.txt
chmod u+x script.sh # 给所有者加执行
chmod go-w demo.txt # 去掉组与其他人的写1
2
3
2
3
目录要进得去:对目录通常需要 x;只给文件 644、目录却无 x,会出现「看得见进不去」。
3. 用户、组与 chown
bash
id
groups1
2
2
bash
# 改所有者(需权限;系统文件常用 sudo)
sudo chown ubuntu:ubuntu demo.txt
# 递归(危险:路径搞错会改爆)
# sudo chown -R ubuntu:ubuntu /some/path1
2
3
4
2
3
4
~/.ssh 典型要求(登录失败常查这里):
bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_ed25519 # 私钥在本机时1
2
3
2
3
4. sudo 边界
| 做法 | 说明 |
|---|---|
sudo apt install ... | 装系统包:合理 |
sudo -i / sudo su | 进入 root shell:少用,用完退出 |
所有编辑都 sudo vim | 容易把文件所有者变成 root,普通用户写不了 |
看自己能否 sudo:
bash
sudo -v
sudo whoami # 应输出 root1
2
2
把用户加入 sudo 组(已有管理员时):
bash
sudo usermod -aG sudo NEWUSER1
新用户登录后 groups 应含 sudo。
5. 符号链接(够用即可)
bash
ln -s /var/log/syslog ~/lab/syslog-link
ls -l ~/lab/syslog-link1
2
2
l 开头表示链接;部署时常用「当前版」指向某目录。
6. 云机 vs WSL
| 点 | 说明 |
|---|---|
| 权限模型 | 相同(rwx + 所有者) |
/mnt/c 下的文件 | WSL 访问 Windows 盘时,权限表现可能「看起来很宽」;别在这练严格 chmod 心智,练 ~/lab |
7. 动手清单
- [ ]
ls -l口述:类型、所有者、九位权限各是什么 - [ ] 建
~/lab/bin/hello.sh,写入#!/usr/bin/env bash+echo ok,chmod 755后执行 - [ ] 故意
chmod 000 demo.txt再cat,观察报错,再改回644 - [ ] 检查
~/.ssh为700,authorized_keys为600
8. 常见翻车
| 翻车 | 处理 |
|---|---|
Permission denied 读配置 | ls -l 看所有者是否被 sudo 写成 root → sudo chown 回来 |
chmod -R 777 图省事 | 安全与软件行为都变差;按需设,不要全盘 777 |
私钥 644 | SSH 会拒绝使用;改回 600 |
目录无 x | cd 失败;给目录加执行位 |
9. 官方入口
man chmod、man chown、man sudo- Ubuntu Server docs(用户与权限相关章节随版本更新)
下一篇:apt 包管理 —— 正规安装 curl、git、nginx。
OS 深读:20 · 文件系统、inode 与挂载。
