Linux 是多用户系统
每个文件 / 进程都"属于"某个用户和某个组。
whoami # 看自己是谁
id # 看自己 + 所属组
hostname # 看在哪台机器
sudo:临时变 root
普通用户默认不能改系统文件:
echo "hi" > /etc/test.txt
# bash: /etc/test.txt: Permission denied
sudo echo "hi" > /etc/test.txt # ⚠ 重定向用 sudo 失败(shell 先开 fd 再 sudo)
echo "hi" | sudo tee /etc/test.txt # ✓ 正确写法
sudo apt update # 用 root 权限装包
sudo -i # 切到 root shell(小心)
sudo su - # 同上
用完
sudo -i记得exit退回普通用户——别在 root shell 里日常工作。
文件权限:rwx 三组
ls -l hello.txt
# -rw-r--r-- 1 wadely wadely 1234 May 9 10:23 hello.txt
第一列拆解:
- rw- r-- r--
↑ ↑ ↑ ↑
| | | └─ 其他人(others)
| | └───── 组(group)
| └───────── 所有者(owner)
└─────────── 文件类型(- 普通 / d 目录 / l 链接)
每组三个字符:
| 符号 | 文件 | 目录 |
|---|---|---|
r |
可读内容 | 可列出条目 |
w |
可修改内容 | 可创建 / 删除文件 |
x |
可执行 | 可进入(cd) |
例:rw-r--r-- = 所有者可读写、组可读、其他人可读。
chmod:改权限
两种写法。
符号法
chmod u+x script.sh # 所有者加可执行
chmod g-w file.txt # 组去掉写
chmod o+r file.txt # 其他人加读
chmod a+r file.txt # 所有人加读(a = all)
chmod u=rwx,g=rx,o=r f.txt # 显式设
数字法(更常用)
r = 4, w = 2, x = 1
rwx = 4+2+1 = 7
rw- = 4+2 = 6
r-x = 4+1 = 5
r-- = 4
chmod 755 script.sh # rwxr-xr-x — 可执行文件常用
chmod 644 readme.txt # rw-r--r-- — 普通文件常用
chmod 600 .ssh/id_rsa # rw------- — 私钥必须这个
chmod 700 .ssh # rwx------ — 私钥目录
chmod 777 anything # ⚠ 全开放,几乎从不该用
实战例子
# 写个脚本要执行
echo '#!/bin/bash
echo hello' > script.sh
chmod +x script.sh # 简写:默认 a+x
./script.sh
# 看脚本权限
ls -l script.sh
# -rwxr-xr-x 1 wadely wadely 20 May 9 10:30 script.sh
下一篇起进入模块二:文件查找与文本处理。