怎样在 Debian、CentOS 和 FreeBSD 上使用 Sudo

用一个 sudo 用户访问服务器并在 root 级别执行命令是 Linux 和 Unix 系统管理员中非常普遍的做法。 使用一个 sudo 用户通常通过禁用对服务器的直接 root 访问来阻止未经授权的访问。

在本教程中,我们将介绍禁用直接 root 访问的基本步骤,创建一个 sudo 用户,并设置 sudo CentOS、Debian 和 FreeBSD 上的小组。

先决条件

  • 新安装的 Linux 服务器,带有您喜欢的发行版。
  • 安装在服务器上的文本编辑器,无论是 nano、vi、vim、emacs。

第 1 步:安装 sudo

Debian

apt-get install sudo -y

CentOS

yum install sudo -y

FreeBSD

cd /usr/ports/security/sudo/ && make install clean

或者

pkg install sudo

第 2 步:添加 sudo 用户

一种 sudo user 是 Linux 或 Unix 机器上的普通用户帐户。

Debian

adduser mynewusername

CentOS

adduser mynewusername

FreeBSD

adduser mynewusername

第 3 步:将新用户添加到 wheel 组(可选)

轮组是一个用户组,它限制了能够进行的人数 su 根。 添加您的 sudo 用户到 wheel group 是完全可选的,但它是可取的。

笔记: 在 Debian 中, sudo 组经常被发现而不是 wheel. 但是,您可以手动添加 wheel 组使用 groupadd 命令。 出于本教程的目的,我们将使用 sudo Debian 小组。

和…之间的不同 wheelsudo.

在 CentOS 和 Debian 中,属于 wheel 组可以执行 su 并直接上升到 root. 同时,一个 sudo 用户将使用 sudo su 第一的。 本质上,除了用于成为 root 的语法之外,没有真正的区别,属于两个组的用户都可以使用 sudo 命令。

Debian

usermod -aG sudo mynewusername

CentOS

usermod -aG wheel mynewusername

FreeBSD

pw group mod wheel -m mynewusername

第 4 步:确保您的 sudoers 文件设置正确

重要的是要确保 sudoers 文件位于 /etc/sudoers 正确设置以允许 sudo users 有效地利用 sudo 命令。 为了实现这一点,我们将查看 /etc/sudoers 并在适用的情况下编辑它们。

Debian

vim /etc/sudoers

或者

visudo

CentOS

vim /etc/sudoers

或者

visudo

FreeBSD

vim /etc/sudoers

或者

visudo

笔记:visudo 命令将打开 /etc/sudoers 使用系统首选的文本编辑器(通常是 vi 或 vim)。

在此行下方开始查看和编辑:

# Allow members of group sudo to execute any command

本节 /etc/sudoers 通常看起来像这样:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

在某些系统中,您可能找不到 %wheel 代替 %sudo; 在这种情况下,这将是您开始修改的行。

如果行以 %sudo 在 Debian 或 %wheel 在 CentOS 和 FreeBSD 中没有注释掉(以 # 为前缀),这意味着 sudo 已经设置并启用。 然后,您可以进行下一步。

第 5 步:允许既不属于 wheel 也不是 sudo 组来执行 sudo 命令

可以允许既不在用户组中的用户执行 sudo 命令只需将它们添加到 /etc/sudoers 如下:

anotherusername ALL=(ALL) ALL

步骤 6:重新启动 SSHD 服务器

为了应用您所做的更改 /etc/sudoers,需要重启SSHD服务器如下:

Debian

/etc/init.d/sshd restart

CentOS 6

/etc/init.d/sshd restart

CentOS 7

systemctl restart sshd.service

FreeBSD

/etc/rc.d/sshd start

第 7 步:测试

重新启动 SSH 服务器后,注销,然后以您的用户身份重新登录 sudo user,然后尝试执行一些测试命令如下:

sudo uptime
sudo whoami

以下任何命令都将允许 sudo user 成为 root.

sudo su -
sudo -i
sudo -S

笔记:

  • whoami 命令将返回 root 当与 sudo.
  • 执行时会提示您输入用户密码 sudo 命令,除非您明确指示系统不要提示 sudo users 对于他们的密码。 请注意,这不是推荐的做法。

可选:允许 sudo 无需输入用户密码

如前所述,这不是推荐的做法,包含在本教程中仅用于演示目的。

为了让您的 sudo user 执行 sudo 命令而不提示输入密码,在访问行后缀 /etc/sudoersNOPASSWD: ALL 如下:

%sudo   ALL=(ALL:ALL) ALL   NOPASSWD: ALL

笔记: 您需要重新启动 SSHD 服务器才能应用更改。

步骤 8:禁用直接 root 访问

现在您已经确认可以使用您的 sudo user 没有问题,现在是第八步也是最后一步,禁用直接 root 访问。

首先,打开 /etc/ssh/sshd_config 使用您喜欢的文本编辑器并找到包含以下字符串的行。 它可能带有前缀 # 特点。

PermitRootLogin

无论前缀或选项的值怎样 /etc/ssh/sshd_config,您需要将该行更改为以下内容:

PermitRootLogin no

最后,重新启动您的 SSHD 服务器。

笔记: 不要忘记通过尝试通过 SSH 连接到您的服务器来测试您的更改 root. 如果您无法这样做,则意味着您已成功完成所有必要的步骤。

我们的教程到此结束。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

相关阅读:

Posted in: LinuxTags: ,