1. 进入管理员用户
2. 打开/etc/sudoers文件:
sudo visudo
3. 添加user ALL=(ALL:ALL) ALL (user为用户名):
user ALL=(ALL:ALL) ALL
4. 保存并退出:
- 执行“Ctrl + O”
- 执行完“Ctrl + O”后,会输出“File Name to Write sudoers.tmp”,直接回车即可
- 执行“Ctrl + X”退出
配置完成,普通用户可以使用sudo执行需要root权限的命令了。
5. 上述配置完成后,普通用户使用sudo时需要输入密码,可以通在sudoers文件中添加user ALL=(ALL) NOPASSWD:ALL实现免密:
user ALL=(ALL) NOPASSWD:ALL
6. 需要注意的一点是,user ALL=(ALL:ALL) ALL 和 user ALL=(ALL) NOPASSWD:ALL 是两个不同的 sudoers 规则,它们的区别在于以下几点:
NOPASSWD 选项:
- user ALL=(ALL) NOPASSWD:ALL 表示用户 user 在任何终端以任何用户身份执行任何命令时都无需输入密码。这是通过 NOPASSWD 选项实现的。
- user ALL=(ALL:ALL) ALL 表示用户 user 在任何终端以任何用户身份执行任何命令时需要输入密码。这是因为没有使用 NOPASSWD 选项。
特定用户和组的指定:
- user ALL=(ALL) NOPASSWD:ALL 允许用户 user 在任何终端以任何用户身份执行任何命令。
- user ALL=(ALL:ALL) ALL 允许用户 user 在任何终端以任何用户身份执行任何命令,且涉及到用户和组的身份切换。
身份切换的配置:
- user ALL=(ALL:ALL) ALL 的 (ALL:ALL) 部分表示用户 user 可以以任何用户(第一个 ALL)和任何组(第二个 ALL)的身份执行任何命令。这允许用户 user 进行更灵活的身份切换。
总体而言,NOPASSWD:ALL 的存在使得用户可以在执行 sudo 命令时无需输入密码,而 user ALL=(ALL:ALL) ALL 用户则需要输入密码。此外,user ALL=(ALL:ALL) ALL 用户在身份切换方面有更多的灵活性,可以以任何用户和组的身份执行命令。
7. 如果既想在身份切换方面有更多的灵活性,又不想每次执行sudo命令都输入密码,可以在/etc/sudoers文件中添加:
user ALL=(ALL:ALL) ALL
user ALL=(ALL) NOPASSWD:ALL