首页 / Linux 命令行入门教程 / 44. sudo 提权与 /etc/sudoers

Linux 命令行入门教程

44. sudo 提权与 /etc/sudoers

本教程共 90 篇 · 第 44 篇

44. sudo 提权与 /etc/sudoers

日常用普通用户,干系统级活才需要提权。sudo 让你以管理员身份跑单条命令,不用登录到 root 账号。

基本用法:命令前加 sudo,输你自己的密码:

sudo apt update
sudo nano /etc/hosts

以别的用户身份跑命令:

sudo -u www-data whoami

看你自己能用 sudo 跑什么:

sudo -l

用完让 sudo 记住的密码失效,下次重输:

sudo -k

sudosu 好在哪:不共享 root 密码,每次只输自己的密码;而且每次操作都写进 /var/log/auth.log,可以审计谁干了什么。

/etc/sudoers 决定谁能 sudo、能跑哪些命令。务必用 visudo 编辑,它会校验语法,防止写错把 sudo 锁死:

sudo visudo

一行示例,给用户 alice 全部权限:

alice ALL=(ALL:ALL) ALL

最小权限原则:只给某条命令更稳妥:

alice ALL=(ALL:ALL) /usr/bin/systemctl restart nginx
Warning

永远别用普通编辑器直接改 /etc/sudoers。语法一旦写错,会导致所有人都无法 sudo,包括你自己。一定要用 sudo visudo

Tip

日常奉行最小权限:能不加 sudo 就不加;要加也只授权真正需要的命令,别图省事给 ALL

小结:sudo 临时提权、留下审计;/etc/sudoers 用 visudo 改,按最小权限授权。用户增删见 §45。