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
sudo 比 su 好在哪:不共享 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。