08 权限与用户
学习目标
- 能查看当前用户身份和用户组。
- 能理解文件权限的读、写、执行。
- 能在需要时使用管理员权限执行命令。
命令总览
| 命令 | 用途 | 含义 | 基本用法 | 例子 |
|---|---|---|---|---|
whoami | 查看有效用户 | 显示当前进程的 effective user | whoami | whoami |
id | 查看用户 ID 和组 ID | 显示 UID、GID 和所属组 | id [用户名] | id |
groups | 查看用户组 | 显示当前用户或指定用户所属组 | groups [用户名] | groups |
chmod | 修改权限 | change mode,修改读写执行权限 | chmod 权限 文件 | chmod u+x -- script.sh |
chown | 修改所有者 | change owner,通常需要授权,见下方语法参考 | chown 用户:组 文件 | chown -- USER:GROUP /absolute/path |
sudo | 按策略切换执行身份 | 经 sudoers 策略以 root 或其他用户运行命令 | sudo [选项] 命令 | sudo -l |
su | 切换用户 | substitute user,切换到另一个用户 | su 用户名 | su root |
passwd | 修改密码 | 设置当前用户或指定用户密码 | passwd [用户名] | passwd |
常用场景
查看当前身份:
whoami
id
groups给脚本增加执行权限:
chmod u+x -- run.sh
./run.sh设置常见文件权限:
chmod 644 config.txt
chmod 755 script.sh查看 sudo 策略(可能要求认证):
sudo -l修改所有者是状态变更,仅作语法参考:
sudo chown -- USER:GROUP /absolute/path新手注意
- Linux mode 常见三类对象:文件所有者、所属组、其他用户;ACL、capability、SELinux/AppArmor 还可能增加约束。
r表示读,w表示写,x表示执行。- 对目录,
x表示遍历/搜索目录项,不是“执行目录”;只读目录名通常还需要r。 chmod u+x明确只给 owner 增加执行位;省略 who 的chmod +x结果会受 umask 影响。644/755是常见示例,不是通用安全答案;秘密文件、共享目录和服务账户要按实际访问模型设计。sudo能运行什么由策略决定,不等于获得无限管理员授权。执行删除、覆盖、改权限命令前要特别确认。- 不建议长期停留在 root 用户下操作;需要高权限时优先用
sudo。
数字权限的最小直觉
r=4、w=2、x=1,每组相加形成 owner/group/other 三位,例如 640 表示 owner 读写、group 只读、other 无权限。检查而不是背答案:
umask
stat --format='%A %a %U:%G %n' -- config.txt
namei -l -- "$PWD/config.txt"namei 属于 util-linux,最小系统可能没有;它有助于逐级检查目录遍历权限。
无 sudo 权限练习
在自有实验目录创建 run.sh 与 config.txt,只改变 owner 权限:
chmod u+x,go-x -- run.sh
chmod u=rw,g=r,o= -- config.txt
stat --format='%A %a %U:%G %n' -- run.sh config.txt不要递归 chmod/chown。真实递归变更必须核对 canonical absolute path、owner/group 是否存在、符号链接和挂载边界,并取得授权。