sudo · 管理员钥匙

上游:ls(查看文件前可能需要权限)· cd(进入受限目录) 下游:apt(安装软件必须 sudo)· chmod(改权限)· chown(改主人)· systemctl(管服务) 参见:chown(sudo 才能改文件主人)


一句话是什么

sudo 让你临时变成管理员执行一条命令,就像学校里借老师的门禁卡开一扇你平时进不去的门——用完就还。


为什么需要它

Linux 有三种人:

普通用户(aaron)  →  只能动自己的文件
管理员(root)     →  可以动所有文件、安装软件、改系统设置
sudo              →  普通用户借一下 root 的权力,只用一次

为什么不直接用 root

因为直接用 root 太危险。你一个手滑,rm -rf / 就能把整个系统删光。 sudo 要求你每次都确认,还会记日志,谁做了什么一清二楚。

# 普通用户尝试读 root 用户的主目录
$ ls /root
ls: cannot open directory '/root': Permission denied
 
# 借一下管理员权限
$ sudo ls /root
[sudo] password for aaron:
.bash_history  .cache  snap

核心用法

公式

sudo [命令]

一行命令,sudo 放最前面,后面跟你要执行的任何命令。

常用场景表

场景命令说明
安装软件sudo apt install <名字>apt 需要写入系统目录
编辑系统文件sudo nano /etc/hosts系统配置文件 aaron 无权写
查看受保护目录sudo ls /rootroot 用户的主目录
改文件主人sudo chown aaron 文件改别人的文件
切换到 rootsudo -i进入 root 会话(用完记得 exit)
以 root 身份跑脚本sudo bash script.sh

密码规则

  • 第一次 sudo:要输密码(就是 aaron 的登录密码)
  • 之后 15 分钟内:不用再输
  • 超时了:重新输

Linux 笑话

有个经典的 Linux 漫画:

妈妈:去把房间收拾干净!
孩子:不要。
妈妈:sudo 去把房间收拾干净!
孩子:好的,妈妈。

这不是笑话——这是 sudo 的本质。 “以权威身份重新发出命令”


另一个真实事故:

有个初学者在 Stack Overflow 上看到一条命令可以解决他的问题, 然后发现要加 sudo 才能跑。他没仔细看,sudo 之后, 把系统重要文件删了,Ubuntu 直接崩了。

教训:sudo 之前,先看清楚命令在干什么


例题精讲

📗 初探 Starter — 体验权限边界

任务:感受一下有 sudo 和没有 sudo 的区别。

# 第一步:不用 sudo,尝试看 root 用户的主目录
ls /root
# 结果:Permission denied
 
# 第二步:加上 sudo
sudo ls /root
# 输入你的密码,然后你能看到里面的内容了
 
# 第三步:查看自己有没有 sudo 权限
sudo -l
# 会列出你被允许做的所有 sudo 操作

你学到了什么/etc/shadow 是 Linux 存密码的文件,普通用户不能读。 sudo 让你临时获得读取权限。


📘 应用 User — 用 sudo 安装软件

任务:用 sudo 安装 htop,然后看它安装到哪里了。

# 安装
sudo apt install htop
 
# 安装完,找到可执行文件在哪
which htop
# 输出:/usr/bin/htop
 
# 为什么在 /usr/bin/?
ls -la /usr/bin/htop
# -rwxr-xr-x 1 root root ... /usr/bin/htop
# 注意:主人是 root,不是 aaron
# 但是所有人都可以执行(r-x 对应 others)

你学到了什么sudo apt install 把软件装到 /usr/bin/,这个目录属于 root, 但所有用户都能执行里面的程序。


📙 管理 Admin — 查看 sudo 操作日志

任务:查看系统记录了哪些 sudo 操作。

# 方法一:看认证日志
sudo cat /var/log/auth.log | grep sudo | tail -20
 
# 方法二:用 journalctl(更现代)
sudo journalctl -u sudo --since "today"

你会看到:每次 sudo 的时间、用户、执行的命令。 即使你删了文件,日志还在——系统记得你做了什么。

你学到了什么sudo 不只是权限工具,它还是审计工具。 服务器管理员用它追踪谁对系统做了什么。


官方文档参考

man sudo         # 完整手册
sudo --help      # 快速选项列表

sudo = superuser do,以指定用户(默认 root)身份执行命令,并记录审计日志。 在线:https://manpages.ubuntu.com/sudo


节点链接

上游(需要先了解这些)

  • ls ← 用 ls -la 看文件权限,才知道哪些需要 sudo
  • cd ← 进某些目录需要权限

同层(sudo 的好搭档)

  • apt ← 安装软件必须 sudo apt
  • chmod ← 改文件权限也要 sudo
  • nano ← 编辑系统配置文件:sudo nano

下游(学会 sudo 之后更强大)

危险区域(学会之后慎用)


节点版本:v1.0 · 2026-04-20 下一个节点建议:aptchmod