本教程解释了如何添加、删除和授予 须藤 Ubuntu Linux 操作系统中用户的权限。 下面提供的步骤在 Ubuntu 20.04 LTS 版本中进行了测试。 但是,其他基于 DEB 的发行版的步骤相同。 在进入正题之前,让我们看看什么是 sudo 及其好处。
内容
1. 什么是 sudo?
在 Linux 和 Unix 操作系统中,有一个名为的特殊用户 根. root 用户可以在类 Unix 系统中做任何事情。 使用 root 用户进行日常活动可能很危险,不推荐使用。 一个错误的命令可以摧毁整个系统! 这就是 ”sudo” 来帮忙。 它允许授权用户以 root 级别权限执行任务,即使他们不知道 root 用户密码。 这就是为什么创建一个普通用户并将他添加到 sudo 用户组以在必要时执行管理任务。 因此,在运行带有前缀的命令时,此用户可以同时充当普通用户和管理用户 sudo.
2. 存在的好处 sudo
- 不需要与其他用户共享 root 密码。
- 用户无需知道 root 用户密码即可执行管理任务。
- 执行管理任务时,将提示用户输入 sudo 在系统中发生任何更改之前输入密码。 它应该让用户考虑他们正在做的事情的后果。
- 这 admin 如果不再需要,可以轻松地向用户授予权限并随时撤销权限。
- 某些 Linux 发行版(例如 Ubuntu)默认禁用 root 用户。 所以没有办法对 root 用户发起暴力攻击。 即使有人尝试,也毫无意义。 因为没有root密码可以破解。
- 更重要的是,该 sudo 会话将在短时间内超时。 以防万一,如果您在以 root 用户身份运行命令后让终端保持打开状态 sudo 权限,认证自动过期。 因此,其他用户无法执行任何进一步的管理任务。 默认情况下,密码在当前会话中存储 15 分钟。 之后,您需要再次输入密码。
- 监控 sudo 用户的命令行活动。 sudo 在 /var/log/auth.log 文件中添加用户运行的命令的日志条目。 如果有任何问题,您可以查看这些命令并尝试找出问题所在。
这些是成为一个的一些优势 sudo 用户。 现在,让我们继续看看如何在 Linux 中为用户添加、删除和授予 Sudo 权限
3. 在 Ubuntu 中为用户添加、删除和授予 Sudo 权限
首先,我们将创建一个普通用户。
3.1. 在 Linux 中添加新用户
首先创建一个普通用户,例如 “ubuntuserver”. 为此,请运行:
$ sudo adduser ubuntuserver
示例输出:
Adding user `ubuntuserver' ... Adding new group `ubuntuserver' (1001) ... Adding new user `ubuntuserver' (1001) with group `ubuntuserver' ... Creating home directory `/home/ubuntuserver' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for ubuntuserver Enter the new value, or press ENTER for the default Full Name []: ubuntu 20.04 server Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
已创建名为“ubuntuserver”的新用户。
3.2. 在 Linux 中向用户授予 Sudo 权限
在某些 Linux 系统中,例如 Arch Linux,需要安装 ”sudo” 在创建新的之前打包 sudo 用户。
# pacman -S sudo
在 Debian 上:
# apt install sudo
在 Ubuntu 服务器和桌面上,“sudo”默认安装。
现在将新创建的用户添加到 sudo 使用以下命令分组:
$ sudo adduser ubuntuserver sudo
示例输出:
Adding user `ubuntuserver' to group `sudo' ... Adding user ubuntuserver to group sudo Done.
名为“ubuntuserver”的用户已被授予 sudo 权限。
您还可以使用以下命令将用户添加到 sudo 团体。
$ sudo usermod -aG sudo ubuntuserver
验证用户是否在 sudo 组,运行:
$ sudo -l -U ubuntuserver
示例输出:
Matching Defaults entries for ubuntuserver on ostechnix: env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin User ubuntuserver may run the following commands on ostechnix: (ALL : ALL) ALL
在这里, “(全部:全部)全部” line 表示用户拥有无限权限,可以在系统上运行任何命令。 在这种情况下,“ubuntuserver”用户在 sudo 用户组和他现在可以执行各种管理任务。
如果打开内容 sudoers 文件;
$ sudo cat /etc/sudoers
您会看到如下所示的几行。
[...] # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
正如你在上面的输出中看到的,所有成员 sudo 组可以执行任何命令。
- 第一个 ALL 是允许的用户。
- 第二个 ALL 是主机。 如果您将相同的“sudoers”文件分发到多台主机,则用户可以在所有主机上执行管理命令。
- 第三个是运行命令时的用户。
- 最后一个是允许的命令。
3.3. 验证 Sudo 用户
要验证用户是否能够执行管理任务,请注销并以新用户的身份重新登录。
或者,您可以立即以其他用户身份登录 sudo 特权,而不必从当前会话中注销,如下所示。
$ sudo -i -u <username>
例子:
$ sudo -i -u ubuntuserver
现在,运行任何带有前缀“的命令”sudo”像下面。
$ sudo apt update
3.4. 删除 Sudo 用户
你可以删除 sudo 用户的权限,而不必完全删除他/她。 在 Ubuntu 系统中执行此操作时必须小心。 不要从“sudo” 组。应该至少有一个 sudo 系统中的用户。
撤销 sudo 来自用户的权限,命令将是:
$ sudo deluser ubuntuserver sudo
上面的命令将从“sudo“ 团体。
示例输出:
Removing user `ubuntuserver' from group `sudo' ... Done.
请注意,此命令只会从 sudo 组,但不会从系统中永久删除用户。
或者,运行以下命令来撤销 sudo 来自用户的许可:
$ sudo gpasswd -d ubuntuserver sudo
现在,用户变成了普通用户,并且不能执行任何管理任务 sudo 允许。
验证用户是否真的从“sudo” 组,运行:
$ sudo -l -U ubuntuserver
示例输出:
User ubuntuserver is not allowed to run sudo on ostechnix.
这 sudo 已从用户中删除权限。
3.5. 永久删除用户
在上面的步骤中,我们只从“sudo” 组。但该用户仍然存在于系统中。要从 Linux 系统中完全删除用户,请以 root 身份登录或 sudo 用户并运行:
$ sudo deluser <username>
例子:
$ sudo deluser ubuntuserver
如果要删除用户及其主目录和邮件池,请运行:
$ sudo deluser --remove-home ubuntuserver
示例输出:
Looking for files to backup/remove ... Removing files ... Removing user `ubuntuserver' ... Warning: group `ubuntuserver' has no more members. Done.
有关更多详细信息,请查看手册页。
$ man adduser
$ man deluser
$ man sudo
本指南也适用于 Alpine Linux、Arch Linux 和 CentOS 系统。 查看以下指南添加、删除和授予 sudo Arch Linux 和 CentOS Linux 发行版中用户的特权。
- 在 Alpine Linux 中向用户添加、删除和授予 Sudo 权限
- 在 Arch Linux 中为用户添加、删除和授予 Sudo 权限
- 在 CentOS 中为用户添加、删除和授予 Sudo 权限
希望这可以帮助。
相关阅读:
- 如何在 Linux 中更改 Sudo 密码超时
- 如何在 Linux 中更改默认的 Sudo 日志文件
- 如何恢复用户的 Sudo 权限
- 如何查找 Linux 系统中的所有 Sudo 用户
- 如何在 Linux 中不使用 Sudo 密码运行特定命令
.
添加 sudo userAdd userDelete Sudo PrivilegesDelete Usergrant sudo 权限LinuxLinux 命令Linux howtoLinux 用户管理Ubuntu