MENU

在 Debian 中如何将用户添加到 Sudoers

November 8, 2023 • Linux

sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。

这篇文章演示两种方式,给用户提升 sudo 权限。第一件事就是将用户添加到 sudoers 文件。这个文件包含一系列规则,决定哪些用户或者群组可以获得 sudo 授权,和权限级别一样。第二个选项就是将用户添加到sudoers文件中的 sudo 组。默认情况下,在 Debian 和它的衍生版本中,“sudo”组的成员获得 sudo 访问许可。

将用户添加到 sudo 用户组

给用户授权 sudo 权限的最快捷的方式就是将用户添加到“sudo”用户组。 该组的成员,在输入sudo后,在系统提示输入密码时输入用户密码,切换到 root 用户,就可以 root 用户身份执行任何命令了。

我们假设你想要加入用户组的用户已经存在。

以 root 或者其他 sudo 用户的身份运行以下命令,可以将用户添加到 sudo 用户组。

usermod -aG sudo username

复制

确认你要已经修改了“username”为你想要授权的用户的用户名。

大部分情况下,通过这种方式授权 sudo 访问权限是有效的。

为了确保用户已经被添加到用户组,输入:

sudo whoami

复制

你将会被系统提示输入密码。如果用户有 sudo 访问权限,这个命令将会打印"root”。 否则,你会得到错误提示“该用户不在 sudoers 文件”。

将用户添加到 sudoers 文件

用户和用户组的 sudo 权限都定义在/etc/sudoers文件中。这个文件允许你提升访问权限和自定义安全策略。

你可以通过编辑 sudoers 文件或者在/etc/sudoers.d文件夹下创建一个新的配置文件来进行配置。这个文件夹下的文件会被包含在 sudoers 文件中。

通常使用visudo命令来编辑/etc/sudoers文件。当你保存时,这个命令会检查文件的语法错误。如果有任何错误,文件将不会被保存。如果你使用一个正常的文本编辑器编辑这个文件,一个语法错误可能就会让你丧失 sudo 访问权限。

visudo使用系统环境变量EDITOR指定的编辑器,默认是 VIM。 如果你想使用 nano 编辑文件,你可以修改这个变量:

EDITOR=nano visudo

复制

如果你希望用户输入 sudo 时,系统不提示输入密码。为了实现这个,打开/etc/sudoers文件:

visudo

复制

滑动到文件最后面,并且添加下列行:

username  ALL=(ALL) NOPASSWD:ALL

复制

保存文件,并且推出编辑器。不要忘记将“username”修改为你想要修改访问权限的用户名。

另外一个典型的例子就是允许用户通过sudo仅仅只能运行指定命令。 例如,允许用户只能使用mkdirrmdir命令,你可以使用:

username ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir

复制

除了直接便捷 sudoers 文件,你也可以通过在/etc/sudoers.d文件夹下创建一个新文件,添加授权规则来实现同样的目标。将同样的规则添加到这个新创建的 sudoers 文件:

echo "username  ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username

复制

这种方式使得 sudo 权限管理变得很好维护。这个文件的名字并不重要,但是在实践中我们通常根据用户名来命名该文件。

Leave a Comment