学习中心/工程实践/Linux/Linux 6:权限读懂,sudo 少用
· Linux · 6 · 权限
Linux 6:权限读懂,sudo 少用
644、755、600。用户和组。粘滞位。看见 777 先改掉。

权限是谁能读、谁能写、谁能跑
ls -l 左边那一串不是装饰。这一块走完,你该能读出谁能碰这个文件,改对 644 / 755 / 600,少用 sudo,看见 777 知道这是事故现场。
- 读ls -l
- 改chmod
- 主人chown
- 借sudo
1. 先读懂 ls -l
- 看类型、权限、主人、组、大小、时间、名字
ls -l /etc/hosts - 看同样的信息,拆开写。Access / Modify / Change 不是一回事
stat /etc/hosts
-rw-r--r-- 是文件:主人读写,组和其他人只读。d 开头是目录。l 是软链接。三位一组,依次主人、组、其他人。r 读,w 写,x 执行。
目录的 x 是「能进」。没有 x,cd 不进去,名字对了也 ls 不全。目录的 w 是「能在里面建和删」。
2. 数字和符号
- 改给主人加执行。脚本常要这一下
chmod u+x script.sh - 改rw-r--r--。普通文件常用
chmod 644 notes.txt - 改rwxr-xr-x。目录和可执行文件常用
chmod 755 ~/bin/tool - 改只有主人能读。私钥必须这样
chmod 600 ~/.ssh/id_ed25519
r=4,w=2,x=1。644 是 6+4+4。755 是 7+5+5。chmod 777 是谁都能改,出了事不知道谁动过。不要图省事。
3. 用户和组
- 看你的 uid、主组、附加组
id - 看家目录和登录 shell。系统用户也在 /etc/passwd
getent passwd $USER - 看谁在 sudo 组。发行版也可能叫 wheel
getent group sudo
文件的主人是用户,组是第二把钥匙。Web 目录常是 www-data 或 nginx。权限对、主人错,一样打不开。
4. 改主人
- 改用户和组一起改。只改组:chown :group
sudo chown $USER:$USER notes.txt
chown -R / 能把整台机器改坏。范围写到具体目录。先 ls -ld 那个目录。
5. 特殊位
/tmp 常见 drwxrwxrwt。最后的 t 是粘滞位:谁都能在里面建文件,只能删自己的。SUID 跑起来时用文件主人的身份,passwd 这类才需要。可执行文件上莫名的 s,先停下来看是谁的。
- 看看粘滞位
ls -ld /tmp - 看带 SUID 的。多半是系统自带,不要自己乱加
find /usr/bin -perm -4000 -ls
6. sudo 是借一下
- 借你被允许跑哪些。没有这一项就先别猜
sudo -l - 借用 root 的权限看一眼。敲完还是你自己
sudo ls /root - 看确认你还是普通用户
whoami
改 sudoers 用 visudo,写错一行会锁死提权。能不用 sudo 就不用。sudo su - 长期当 root 过日子,日志里分不清是谁干的。
7. umask
- 看新建文件会抹掉哪些位。022 常见,文件变 644,目录变 755
umask
共享目录里 umask 002,组才能写。这是协作,不是 777。
这块过关:能口译 ls -l,私钥 600,目录 755,看见 777 先改掉。下一篇从仓库装软件。