01. 权限是怎么回事
Linux 的权限系统说白了就是「谁能对这个文件干啥」。每个文件都有三组权限:主人(owner)、家里人(group)、路人(others)。每组都有三种操作:读(r,看内容)、写(w,改内容)、执行(x,运行它)。
你 ls -l 看到的那个 rwxr-xr-x 就是这回事——三三一组,从前往后分别对应主人、组、路人。
bash
ls -l script.sh
-rwxr-xr-x 1 john dev 1024 Jun 28 10:30 script.sh
# 拆解:- | rwx | r-x | r-x
# 第一位 - 表示普通文件(d 是目录,l 是软链接)
# rwx → 主人 john 能读能写能执行
# r-x → dev 组的人能读能执行但不能改
# r-x → 其他人能读能执行但不能改02. chmod——改权限
chmod 就是「改锁」的工具。有两种写法:数字模式(642、755 这些)和符号模式(u+x、g-w)。数字模式最常见,三个数字分别代表主人、组、其他人的权限。
打个比方:r=4, w=2, x=1,你要啥权限就把数字加起来。rwx = 4+2+1 = 7,rw- = 4+2 = 6,r-- = 4。
bash
chmod 755 script.sh # 主人全权限,组和其他人只读+执行
chmod 644 file.txt # 主人可读写,其他人只读
chmod 600 secret.key # 只有主人自己能读写,别人完全看不着
chmod +x script.sh # 给所有用户加执行权限
chmod u+w file.txt # 给主人加写权限
chmod go-rwx file.txt # 组和其他人啥权限都收走
chmod -R 755 dir/ # 递归改整个目录关键配置文件设 600,脚本设 755,普通文件 644——记住这三个数字基本够用了。
03. chown——换主人
chown 是给文件换主人的。有时候你把文件传错了用户目录,或者想给项目统一所有权,就得用它:
bash
chown john file.txt # 把文件主人改成 john
chown john:dev file.txt # 主人改成 john,组改成 dev
chown -R john:dev /var/www/ # 整个目录递归改
chown :dev file.txt # 只改组,主人不动04. sudo——借权力
普通用户想干管理员的事怎么办?sudo 就是「借权限」——临时以 root 身份跑一条命令。不用切到 root,干完自动变回普通用户。
要 sudo 得先在 /etc/sudoers 里被列入了白名单:
bash
sudo apt update # 借 root 权限更新软件源
sudo systemctl restart nginx # 借 root 权限重启服务
sudo -i # 临时切到 root 的 shell
sudo -u postgres psql # 以 postgres 用户的身份跑命令
visudo # 安全编辑 /etc/sudoerssudo 权限很大,别随便 curl 一个脚本就用 sudo 执行。先看清楚脚本内容再跑。
知识测验
第 1/5 题正确 0
chmod 644 对应的权限是?
下一节
下一节 进程管理