怎样在 Ubuntu 中添加、删除和授予用户 Sudo 权限

本教程解释了怎样添加、删除和授予 须藤 Ubuntu Linux 操作系统中用户的权限。 下面提供的步骤在 Ubuntu 20.04 LTS 版本中进行了测试。 但是,其他基于 DEB 的发行版的步骤相同。 在进入正题之前,让我们看看什么是 sudo 及其好处。

内容

  1. 1. 什么是 sudo?
  2. 2. 存在的好处 sudo
  3. 3. 在 Ubuntu 中为用户添加、删除和授予 Sudo 权限
    1. 3.1. 在 Linux 中添加新用户
    2. 3.2. 在 Linux 中向用户授予 Sudo 权限
    3. 3.3. 验证 Sudo 用户
    4. 3.4. 删除 Sudo 用户
    5. 3.5. 永久删除用户

1. 什么是 sudo?

在 Linux 和 Unix 操作系统中,有一个名为的特殊用户 . root 用户可以在类 Unix 系统中做任何事情。 使用 root 用户进行日常活动可能很危险,不推荐使用。 一个错误的命令可以摧毁整个系统! 这就是 ”sudo” 来帮忙。 它允许授权用户以 root 级别权限执行任务,即使他们不知道 root 用户密码。 这就是为什么创建一个普通用户并将他添加到 sudo 用户组以在必要时执行管理任务。 因此,在运行带有前缀的命令时,此用户可以同时充当普通用户和管理用户 sudo.

2. 存在的好处 sudo

  • 不需要与其他用户共享 root 密码。
  • 用户无需知道 root 用户密码即可执行管理任务。
  • 在执行管理任务时,将提示用户输入 sudo 在系统中发生任何更改之前输入密码。 它应该让用户考虑他们正在做的事情的后果。
  • 这 admin 如果不再需要,可以轻松地向用户授予权限并随时撤销权限。
  • 一些 Linux 发行版,用于 example Ubuntu,默认禁用 root 用户。 所以没有办法对 root 用户发起暴力攻击。 即使有人尝试,也毫无意义。 因为没有root密码可以破解。
  • 更重要的是,该 sudo 会话将在短时间内超时。 以防万一,如果您在以 root 用户身份运行命令后让终端保持打开状态 sudo 权限,认证自动过期。 因此,其他用户无法执行任何进一步的管理任务。 默认情况下,密码在当前会话中存储 15 分钟。 之后,您需要再次输入密码。
  • 监控 sudo 用户的命令行活动。 sudo 在 /var/log/auth.log 文件中添加用户运行的命令的日志条目。 如果有任何问题,您可以查看这些命令并尝试找出问题所在。

这些是成为一个的一些优势 sudo 用户。 现在,让我们继续看看怎样在 Linux 中为用户添加、删除和授予 Sudo 权限

3. 在 Ubuntu 中为用户添加、删除和授予 Sudo 权限

首先,我们将创建一个普通用户。

3.1. 在 Linux 中添加新用户

首先,创建一个普通用户,对于 example “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
在 Ubuntu Linux 中创建新用户

已创建名为“ubuntuserver”的新用户。

3.2. 在 Linux 中向用户授予 Sudo 权限

在某些 Linux 系统中,对于 example 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.
在 Linux 中向用户授予 Sudo 权限

名为“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
检查用户 sudo Linux 中的组验证用户是否在 sudo 团体

在这里, “(全部:全部)全部” 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
运行命令 sudo 权限运行命令 sudo 权限

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 密码运行特定命令

精选图片 穆罕默德·哈桑知乎.