CentOS 配置 Sudo

CentOS 配置 Sudo

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

在本教程中,我们将介绍禁用直接 root 访问,创建 sudo 用户以及在 CentOS 上设置 sudo 组的基本步骤。

1. 步骤 1:安装 sudo

yum install sudo -y
Bash

2. 步骤 2:添加 sudo 用户

一个 sudo 用户是 Linux 机器上的普通用户帐户。

adduser mynewusername
Bash

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

wheel 组是一个用户组,只有属于 wheel 组的用户才可以用 su 登录为 root,添加你的 sudo 用户到 wheel 组是完全可选的,但建议。

在 CentOS 中,属于的 wheel 组的用户可以执行 su 直接上升到 root。同时,sudo 用户将会使用 sudo su 。基本上除了语法之外没有什么真正的区别成为 root,而属于这两个组的用户可以使用 sudo 命令。

usermod -aG wheel mynewusername
Bash

4. 步骤 4:确保你的 sudoers 文件设置正确

确保这一点很重要 sudoers 文件位于 /etc/sudoers 正确设置为了允许 sudo users 有效使用 sudo 命令。为了达到这个目标,我们将会看到内容 /etc/sudoers 并在适用的地方进行编辑。

vim /etc/sudoers
Bash

开始审查和编辑下面这行:

# Allow members of group sudo to execute any command
Bash

这一节 /etc/sudoers 经常看起来像这样:

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

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

如果行开始 %sudo 在 Debian 或 %wheel 在 CentOS 中没有注释掉(前缀为#),这意味着 sudo 已经被设置并启用了。然后,你可以转到下一步。

5. 步骤 5:允许不属于的用户 wheel 也不是 sudo 组执行 sudo 命令

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

anotherusername ALL=(ALL) ALL
Bash

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

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

CentOS 6

/etc/init.d/sshd restart
Bash

CentOS 7

systemctl restart sshd.service
Bash

7. 步骤 7:测试

重新启动 SSH 服务器后,请注销,然后重新登录 sudo user,然后尝试执行一些测试命令,如下所示:

sudo uptime
sudo whoami
Bash

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

sudo su -
sudo -i
sudo -S
Bash

笔记:

该 whoami 命令将返回 root 当加上 sudo。 执行时将提示你输入用户密码 sudo 命令,除非你明确指示系统不提示 sudo users 为他们的密码。请注意,这不是推荐的做法。 可选:允许 sudo 而不输入用户的密码

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

为了让你的 sudo user 执行 sudo 命令,而不被提示输入密码,后缀为访问行 /etc/sudoers 同 NOPASSWD: ALL 如下:

%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL 注意:你需要重新启动 SSHD 服务器才能应用更改。

8. 步骤 8:禁用直接 root 访问

现在你已经确认可以使用你的 sudo user 没有问题,现在是第八步的禁用直接根访问的时间。

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

PermitRootLogin
Bash

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

PermitRootLogin no
Bash

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

注意:不要忘了通过尝试将 SSH 更改为服务器来测试你的更改 root。如果你无法这样做,这意味着你已成功完成所有必要的步骤。

我们的教程结束了。

posted @   等一念  阅读(10121)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示