李中耀 發表於 2019-7-1 15:48:00

CentOS 配置 Sudo

<h1 id="anchor_1">CentOS 配置 Sudo</h1>
<p>使用 sudo 用户访问服务器并在根级别执行命令是 Linux 和 Unix 系统管理员中非常常见的做法。使用 asudo 用户通常通过禁用对其服务器的直接根访问来防止未经授权的访问。</p>
<p>在本教程中,我们将介绍禁用直接 root 访问,创建 sudo 用户以及在 CentOS 上设置 sudo 组的基本步骤。</p>
<h2 id="anchor_2">1. 步骤 1:安装 sudo</h2>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash">yum <span class="token function">install <span class="token function">sudo -y</span></span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<h2 id="anchor_3">2. 步骤 2:添加 sudo 用户</h2>
<blockquote>
<p>一个 sudo 用户是 Linux 机器上的普通用户帐户。</p>
</blockquote>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash">adduser mynewusername</code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<h2 id="anchor_4">3. 步骤 3:将新用户添加到 wheel 组(可选的)</h2>
<blockquote>
<p>wheel 组是一个用户组,只有属于 wheel 组的用户才可以用 su 登录为 root,添加你的 sudo 用户到 wheel 组是完全可选的,但建议。</p>
</blockquote>
<p>在 CentOS 中,属于的 wheel 组的用户可以执行&nbsp;<code class=" language-markup">su</code>&nbsp;直接上升到 root。同时,sudo 用户将会使用&nbsp;<code class=" language-markup">sudo su</code>&nbsp;。基本上除了语法之外没有什么真正的区别成为 root,而属于这两个组的用户可以使用 sudo 命令。</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token function">usermod -aG wheel mynewusername</span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<h2 id="anchor_5">4. 步骤 4:确保你的 sudoers 文件设置正确</h2>
<p>确保这一点很重要 sudoers 文件位于 /etc/sudoers 正确设置为了允许 sudo users 有效使用 sudo 命令。为了达到这个目标,我们将会看到内容 /etc/sudoers 并在适用的地方进行编辑。</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token function">vim /etc/sudoers</span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>开始审查和编辑下面这行:</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token comment"># Allow members of group sudo to execute any command</span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>这一节 /etc/sudoers 经常看起来像这样:</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token comment"># Allow members of group sudo to execute any command
%sudo   ALL<span class="token operator">=<span class="token punctuation">(ALL:ALL<span class="token punctuation">) ALL</span></span></span></span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>在某些系统中,你可能找不到 %wheel 代替 %sudo; 在这种情况下,这将是你将开始修改的行。</p>
<p>如果行开始 %sudo 在 Debian 或 %wheel 在 CentOS 中没有注释掉(前缀为#),这意味着 sudo 已经被设置并启用了。然后,你可以转到下一步。</p>
<h2 id="anchor_6">5. 步骤 5:允许不属于的用户 wheel 也不是 sudo 组执行 sudo 命令</h2>
<p>可以允许不在用户组中的用户执行 sudo 只需将它们添加到命令中即可 /etc/sudoers 如下:</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash">anotherusername ALL<span class="token operator">=<span class="token punctuation">(ALL<span class="token punctuation">) ALL</span></span></span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<h2 id="anchor_7">6. 步骤 6:重新启动 SSHD 服务器</h2>
<p>为了应用你所做的更改 /etc/sudoers,你需要重新启动 SSHD 服务器,如下所示:</p>
<p>CentOS 6</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash">/etc/init.d/sshd restart</code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>CentOS 7</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash">systemctl restart sshd.service</code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<h2 id="anchor_8">7. 步骤 7:测试</h2>
<p>重新启动 SSH 服务器后,请注销,然后重新登录 sudo user,然后尝试执行一些测试命令,如下所示:</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token function">sudo <span class="token function">uptime
<span class="token function">sudo <span class="token function">whoami</span></span></span></span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>任何以下命令将允许 sudo user 成为 root。</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token function">sudo <span class="token function">su -
<span class="token function">sudo -i
<span class="token function">sudo -S</span></span></span></span></code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>笔记:</p>
<p>该 whoami 命令将返回 root 当加上 sudo。 执行时将提示你输入用户密码 sudo 命令,除非你明确指示系统不提示 sudo users 为他们的密码。请注意,这不是推荐的做法。 可选:允许 sudo 而不输入用户的密码</p>
<p>如前所述,这不是推荐的做法,仅在演示目的中包含在本教程中。</p>
<p>为了让你的 sudo user 执行 sudo 命令,而不被提示输入密码,后缀为访问行 /etc/sudoers 同 NOPASSWD: ALL 如下:</p>
<p>%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL 注意:你需要重新启动 SSHD 服务器才能应用更改。</p>
<h2 id="anchor_9">8. 步骤 8:禁用直接 root 访问</h2>
<p>现在你已经确认可以使用你的 sudo user 没有问题,现在是第八步的禁用直接根访问的时间。</p>
<p>首先打开&nbsp;<code class=" language-markup">/etc/ssh/sshd_config</code>&nbsp;使用你喜欢的文本编辑器,并找到包含以下字符串的行。它可能有一个前缀#字符。</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash">PermitRootLogin</code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>无论前缀或该选项的值 /etc/ssh/sshd_config 你需要将该行更改为以下内容:</p>
<div class="code-toolbar">
<pre class="line-numbers language-bash"><code class=" language-bash">PermitRootLogin no</code></pre>
<div class="toolbar">
<div class="toolbar-item">Bash</div>
<div class="toolbar-item">Copy</div>
</div>
</div>
<p>最后,重新启动你的 SSHD 服务器。</p>
<p>注意:不要忘了通过尝试将 SSH 更改为服务器来测试你的更改 root。如果你无法这样做,这意味着你已成功完成所有必要的步骤。</p>
<p>我们的教程结束了。</p><br><br>
来源:https://www.cnblogs.com/nullnullnull/p/11114506.html
頁: [1]
查看完整版本: CentOS 配置 Sudo