root 是 Linux 中权限最高的传统管理员账户,通常 UID 为 0。普通用户受文件权限和系统策略限制,而 root 几乎可以访问和修改整个系统。id 是可靠的身份检查方式;提示符中的 # 或 $ 可以自定义,只能作为提示。
sudo 只提升一条命令
sudo 以授权的其他身份执行命令,最常见的是临时以 root 运行管理员操作。例如 sudo apt update 可能要求当前用户的密码,但执行结束后,后续命令不会永久变成 root。sudo -l 可以查看当前用户被允许执行的操作;不同系统可能通过 sudo 或 wheel 组授权。
单条管理命令sudo command
权限边界清晰,审查更容易。
连续管理任务sudo -i … exit
root Shell 中每条命令都需格外谨慎。
为什么不一直使用 root
权限限制是保护机制。普通用户错误运行 rm /etc/hosts 通常会失败,而 root 或 sudo 可能真的删除它。对 rm、mv、chmod、chown 等改变状态的命令,应在按 Enter 前检查目标与参数。
sudo 不是 Permission denied 的万能修复
权限错误可能意味着路径错误、所有者设置错误,或程序本应在用户目录运行。如果项目文件错误地属于 root,长期用 sudo 编辑只是掩盖问题;应查明原因并恢复正确所有权。只需要一条管理命令时,优先用 sudo command。若进入 sudo -i,完成后用 exit 返回普通环境。
暂停一秒: 在 sudo 后按 Enter 前,重新读一遍命令、目标机器和目标路径。
互动实验
最小权限检查站
访问权限免费
最小权限闸门
mkdir ~/project判断这条命令应使用普通权限、sudo,还是应该直接停止。
知识测验
题目
开发项目里的 app.py 错误地属于 root。最佳长期处理是什么?
知识测验
题目
进入 sudo -i 后,何时恢复普通用户环境?
动手练习
安全的权限调查
你无法编辑项目中的 config.yaml。先调查,不要直接给文件 777 权限。
- 确认当前身份和所属组。
- 查看文件所有者、所属组和权限。
- 查看当前用户的 sudo 授权范围。
- 假设文件误属 root,将所有者恢复为 alice:developers,再验证;解释为何无需 sudo 编辑。