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


sudo
是一个命令行程序,它允许被信任的用户以 root 或者其他用户身份去运行命令。
我们将会展示两种方式给用户进行 sudo 提权。第一种方式就是将用户添加到 sudoers 文件。这个文件包含了以下信息:
- 控制哪些用户和用户组被授予 sudo 权限
- sudo 权限级别
第二个选项就是将用户添加到在sudoers
文件中的 sudo 用户组。默认情况下,基于 Debian 的发行版,例如 Ubuntu,Linux Mint,sudo 用户组的成员都拥有 sudo 权限。
一、将用户添加到 sudo 用户组
在 Ubuntu 上,最简单的授予一个用户 sudo 权限的方式就是将用户添加到“sudo”用户组。该组成员可以以 root 身份执行任何命令,并且在使用sudo
命令,被提示时,使用他们自己的密码进行认证。
我们假定用户已经存在,如果你想要创建一个新用户,检查这篇指南
想要将用户添加到用户组,以 root 或者其他 sudo 用户身份运行下面的命令。确认你将“username”替换成你想要授权的用户名:
usermod -aG sudo username
通过这种方式授权 sudo 权限对大部分用户场景都很有效。
想要确保用户拥有 sudo 权限,运行whoami
命令:
sudo whoami
你会被提示输入密码。如果用户有 sudo 权限,这个命令将会打印“root”:
root
如果你得到任何错误提示:“user is not in the sudoers file”,它代表这个用户没有 sudo 权限。
二、将用户添加到 sudoers 文件
用户和用户组的 sudo 权限被定义在文件/etc/sudoers
文件。将一个用户添加到这个文件,允许你自定义访问命令以及配置自定义安全策略。
你可以通过修改 sudoers 文件或者在/etc/sudoers.d
目录下创建配置文件来配置用户的 sudo 访问权限。目录下的所有文件都会被包含在 sudoers 文件中。
永远使用visudo
来编辑/etc/sudoers
文件。这个命令在保存文件时会检测文件的语法错误。如果有任何错误,文件就不会被保存。如果你使用一个文本编辑器编辑这个文件,一个语法错误,就可能导致你丢失 sudo 访问权限。
通常,visudo
使用 vim 来打开/etc/sudoers
文件。如果你没有用过 Vim,并且你想使用nano
作为默认编辑器来编辑这个文件,运行:
EDITOR=nano visudo
比方说,你想允许用户在运行 sudo 命令时,不提示输入密码。想要这么做,你可以打开/etc/sudoers
文件:
visudo
滚动到文件最后,并且添加下面的内容:
username ALL=(ALL) NOPASSWD:ALL
保存文件,并且推出编辑器。不要忘记,将“username”修改成你想要授权的用户名。
还有一个典型的例子就是只允许用户通过 sudo 运行指定的命令。例如,想要只允许运行mkdir
和rmdir
,你可以这样: /etc/sudoers
username ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir
与其直接编辑 sudo 文件,你还可以通过在/etc/sudoers.d
文件夹下创建同样的文件来完成这个需求。像添加到 sudoer 文件一样,添加同样的规则:
echo "username ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username
这种方式会使得 sudo 权限管理更好维护。文件的名称并不重要。通常的做法就是,文件名和用户名一样。
三、总结
在 Ubuntu 上授权用户 sudo 权限很简单,你只需要将用户添加到“sudo”用户组。