sudo
是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。
这篇文章演示两种方式,给用户提升 sudo 权限。第一件事就是将用户添加到 sudoers 文件。这个文件包含一系列规则,决定哪些用户或者群组可以获得 sudo 授权,和权限级别一样。第二个选项就是将用户添加到sudoers
文件中的 sudo 组。默认情况下,在 Debian 和它的衍生版本中,“sudo”组的成员获得 sudo 访问许可。
给用户授权 sudo 权限的最快捷的方式就是将用户添加到“sudo”用户组。 该组的成员,在输入sudo
后,在系统提示输入密码时输入用户密码,切换到 root 用户,就可以 root 用户身份执行任何命令了。
我们假设你想要加入用户组的用户已经存在。
以 root 或者其他 sudo 用户的身份运行以下命令,可以将用户添加到 sudo 用户组。
usermod -aG sudo username
确认你要已经修改了“username”为你想要授权的用户的用户名。
大部分情况下,通过这种方式授权 sudo 访问权限是有效的。
为了确保用户已经被添加到用户组,输入:
sudo whoami
你将会被系统提示输入密码。如果用户有 sudo 访问权限,这个命令将会打印"root”。 否则,你会得到错误提示“该用户不在 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
仅仅只能运行指定命令。 例如,允许用户只能使用mkdir
和rmdir
命令,你可以使用:
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 权限管理变得很好维护。这个文件的名字并不重要,但是在实践中我们通常根据用户名来命名该文件。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有