学习中心/工程实践/Linux/Linux 6:权限读懂,sudo 少用

· Linux · 6 · 权限

Linux 6:权限读懂,sudo 少用

644、755、600。用户和组。粘滞位。看见 777 先改掉。

正在加载录音…

权限是谁能读、谁能写、谁能跑

ls -l 左边那一串不是装饰。这一块走完,你该能读出谁能碰这个文件,改对 644 / 755 / 600,少用 sudo,看见 777 知道这是事故现场。

  1. 读ls -l
  2. 改chmod
  3. 主人chown
  4. 借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/passwdgetent passwd $USER
  • 看
    谁在 sudo 组。发行版也可能叫 wheelgetent group sudo

文件的主人是用户,组是第二把钥匙。Web 目录常是 www-data 或 nginx。权限对、主人错,一样打不开。

4. 改主人

  • 改
    用户和组一起改。只改组:chown :groupsudo 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,目录变 755umask

共享目录里 umask 002,组才能写。这是协作,不是 777。

这块过关:能口译 ls -l,私钥 600,目录 755,看见 777 先改掉。下一篇从仓库装软件。

同模块

工程实践 →