跳到主要内容

为某个用户添加sudo权限

确保sudo已经安装

如果没有安装,可以先安装

apt install sudo

编辑/etc/sudoers文件

不要用普通的编辑器,要用visudo来编辑它。

visudo

在文件中找到类似这样的行:

root    ALL=(ALL:ALL) ALL

在该行下面添加一行,授予新用户 sudo 权限:

newuser ALL=(ALL:ALL) NOPASSWD: ALL
  • 第一个ALL:这指的是该规则适用于所有的主机。在/etc/sudoers的上下文中,主机指的是系统,可以精细控制哪些命令可以在哪些主机上执行。在大多数情况下,这里使用ALL是因为etc/sudoers主要控制的是本地权限。
  • 第一对括号中的ALL:ALL:这是一个运行时的用户和组的指定。第一个ALL指用户可以以任何用户身份执行命令,第二个ALL指用户可以以任何组身份执行命令。
    • 第一个ALL(括号中的第一部分):表示该用户可以模拟任何用户(即,作为任何用户运行命令)。
    • 第二个ALL(括号中的第二部分):表示该用户可以模拟任何组(即,作为任何组的成员运行命令)。
  • 最后一个ALL:这指的是用户可以执行任何命令。实质上,这给了用户在使用sudo时几乎不受限制的权限。
  • 如果你希望用户在执行这些命令时输入密码,可以省略 NOPASSWD:
备注

使用sudo命令时,可以通过-u选项指定以另一个用户的身份执行命令。默认情况下,sudo会以root用户的身份运行命令,但如果你想以不同的用户身份执行命令,可以这样做:

sudo -u username command
备注

假设你想允许用户jane只能执行/usr/bin/apt update/usr/bin/apt upgrade命令,且执行这些命令时不需要密码,你可以添加以下行:

jane ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade