用户、组与文件权限: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 按需执行管理命令。掌握这几个命令,你就能安全、清晰地管理服务器上的文件与账号。