用户、组与文件权限:chmod / chown / sudo 详解

看懂 rwx 与 755/644,学会用 chmod 改权限、chown 改归属、创建用户并用 sudo 安全提权。

Linux 上每个文件都记录着「谁能读、谁能写、谁能执行」。理解这套权限模型,是管好你的服务器、避免误开权限或被锁在门外的第一步。

读懂权限:rwx 与数字

在服务器上执行 ls -l,每行开头类似 -rwxr-xr-x。第一位是类型(- 文件、d 目录),后面 9 位分三组,分别对应所有者(u)、同组用户(g)、其他人(o):

  • r 读(read)= 4
  • w 写(write)= 2
  • x 执行(execute,目录则表示可进入)= 1

每组把三个数字相加就是常见的「数字权限」:

| 数字 | 权限 | 常见用途 | |------|------|----------| | 755 | rwxr-xr-x | 目录、可执行脚本 | | 644 | rw-r--r-- | 普通文件、配置 | | 600 | rw------- | 私钥、敏感文件 |

比如 644 = 所有者读写(6),同组和其他人只读(4)。

chmod:修改权限

chmod 644 config.yaml        # 用数字直接设定
chmod u+x deploy.sh          # 给所有者加执行权限
chmod go-w file.txt          # 去掉同组和其他人的写权限
chmod -R 755 /var/www/site   # 递归修改整个目录

数字方式是「覆盖式」设定,u/g/o + +/- 方式是「增减式」微调。私钥务必 chmod 600,否则 SSH 会拒绝使用。

chown:修改归属

chmod 管权限,chown 管「属于谁」:

chown alice file.txt              # 改所有者
chown alice:developers file.txt   # 同时改所有者和所属组
chown -R www-data:www-data /var/www   # 递归改目录归属

修改归属通常需要管理员权限,记得在前面加 sudo。

创建用户与加入 sudo 组

不要长期用 root 干活。为自己建一个日常账号(Ubuntu/Debian 推荐交互式的 adduser):

sudo adduser alice           # 按提示设置密码等信息
sudo passwd alice            # 之后单独改密码

要让新账号能提权,把它加入 sudo 组:

sudo usermod -aG sudo alice

注意 -aG 的 a 表示「追加」,漏掉会覆盖掉用户原有的组。CentOS/Rocky 上对应的是 wheel 组:sudo usermod -aG wheel alice。改组后需重新登录才生效。

sudo:临时提权

sudo 让普通用户以管理员身份执行单条命令,比直接用 root 更安全,且每次操作都会留下日志:

sudo apt update              # 以 root 身份执行一条命令
sudo systemctl restart nginx
sudo -i                      # 打开一个 root 交互 shell(用完及时 exit)

小结

rwx 与数字权限(如 755、644)描述「谁能做什么」,chmod 改权限、chown 改归属。用 adduser 建日常账号、usermod -aG sudo 赋予提权能力,再用 sudo 按需执行管理命令。掌握这几个命令,你就能安全、清晰地管理服务器上的文件与账号。