<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>数据安全 &#8211; ❤Haruko❤</title>
	<atom:link href="https://blog.hrk386.com/archives/tag/%e6%95%b0%e6%8d%ae%e5%ae%89%e5%85%a8/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.hrk386.com</link>
	<description>386 Forever</description>
	<lastBuildDate>Mon, 05 Jan 2026 08:05:39 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
<site xmlns="com-wordpress:feed-additions:1">244765838</site>	<item>
		<title>VPS重装系统后的用户管理增强VPS安全性：告别Root，创建你的专属操作用户VPS重装系统后的用户管理</title>
		<link>https://blog.hrk386.com/archives/40</link>
					<comments>https://blog.hrk386.com/archives/40#respond</comments>
		
		<dc:creator><![CDATA[はるこHaruko]]></dc:creator>
		<pubDate>Thu, 22 May 2025 02:45:36 +0000</pubDate>
				<category><![CDATA[技术指南]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[常用命令]]></category>
		<category><![CDATA[数据安全]]></category>
		<category><![CDATA[用户管理]]></category>
		<guid isPermaLink="false">https://blog.hrk386.com/?p=40</guid>

					<description><![CDATA[嘿，大家好！今天想跟大家聊聊一个关于VPS安全的小技巧，但我觉得它非常重要，那就是——别再直接用Root用户操 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>嘿，大家好！今天想跟大家聊聊一个关于VPS安全的小技巧，但我觉得它非常重要，那就是——别再直接用Root用户操作你的服务器啦！</p>



<p>Root用户权限太高了，一个不小心或者被恶意利用，后果可能不堪设想。所以，更安全的做法是创建一个普通用户，然后只在需要的时候通过 <code>sudo</code> 命令来获取Root权限。这样即使这个普通用户出了问题，也不会直接影响到整个系统。</p>



<p>下面，我就根据我自己的实践经验，手把手教你如何创建一个新的用户，并进行一些必要的配置，让你的VPS更安全。</p>



<p><strong>前提：</strong> 你需要通过Root用户登录到你的VPS来执行下面的初始设置。</p>



<h2 class="wp-block-heading">第一步：确认并安装 <code>sudo</code> 工具</h2>



<p>大多数现代Linux发行版都预装了 <code>sudo</code> 了，但以防万一，我们还是先确认一下。如果你的系统上没有，需要先安装它。</p>



<p>通常，安装命令是这样的（根据你的系统选择）：</p>



<ul class="wp-block-list">
<li><strong>Debian/Ubuntu:</strong><br><pre><code class="language-bash">apt update<br>apt install sudo</code></pre><br></li>



<li><strong>CentOS/RHEL/Fedora:</strong><br><pre><code class="language-bash">yum install sudo<br># 或者对于较新的系统<br>dnf install sudo</code></pre><br></li>
</ul>



<h2 class="wp-block-heading">第二步：找到你的系统使用哪个用户组来管理 <code>sudo</code> 权限</h2>



<p>不同的Linux发行版可能会使用不同的用户组来赋予用户执行 <code>sudo</code> 命令的权限。最常见的是 <code>sudo</code> 或 <code>wheel</code>。我们需要确认一下你的系统用的是哪个。</p>



<p>运行这个命令：</p>



<pre class="wp-block-code"><code>grep -E 'sudo|wheel' /etc/group</code></pre>



<p>这个命令会查找 <code>/etc/group</code> 文件中包含 <code>sudo</code> 或 <code>wheel</code> 的行。</p>



<p><strong>输出示例：</strong></p>



<ul class="wp-block-list">
<li>如果看到类似 <code>sudo:x:27:</code> 这样的行，说明你的系统使用 <code>sudo</code> 组。</li>



<li>如果看到类似 <code>wheel:x:10:</code> 这样的行，说明你的系统使用 <code>wheel</code> 组。</li>
</ul>



<p>记下这个组名，下一步会用到。</p>



<h2 class="wp-block-heading">第三步：创建新用户并加入到 <code>sudo</code> 用户组</h2>



<p>现在，我们来创建那个用于日常操作的新用户。这里我以创建一个名为 <code>yaelee</code> 的用户为例，你需要把 <code>yaelee</code> 替换成你想要的名字。同时，根据上一步确认的组名，选择 <code>sudo</code> 或 <code>wheel</code>。</p>



<p>创建用户的命令是 <code>useradd</code>，加上 <code>-m</code> 参数是为了同时创建用户的主目录（<code>/home/yaelee</code>），<code>-G</code> 参数后面跟着的就是我们要把用户添加进去的 <code>sudo</code> 或 <code>wheel</code> 用户组。</p>



<ul class="wp-block-list">
<li>如果你的系统使用 <code>sudo</code> 组：<br><pre><code class="language-bash">sudo useradd -m -G sudo yaelee</code></pre><br></li>



<li>如果你的系统使用 <code>wheel</code> 组：<br><pre><code class="language-bash">sudo useradd -m -G wheel yaelee</code></pre><br></li>
</ul>



<p>执行完这个命令，用户 <code>yaelee</code> 就创建好了，并且拥有了通过 <code>sudo</code> 执行命令的潜力。</p>



<h2 class="wp-block-heading">第四步：为新用户配置SSH公钥登录</h2>



<p>这是非常关键的一步，我们不希望新用户通过密码登录（因为密码容易被破解），而是通过更安全的SSH密钥对登录。你需要把你本地电脑生成的SSH公钥放到服务器上新用户的家目录下的 <code>.ssh/authorized_keys</code> 文件里。</p>



<p>首先，以新用户的身份创建 <code>.ssh</code> 目录（注意权限问题，所以我们用 <code>sudo -u yaelee</code> 来执行）：</p>



<pre class="wp-block-code"><code>sudo -u yaelee mkdir -p /home/yaelee/.ssh</code></pre>



<p><code>-p</code> 参数确保即使父目录 <code>/home/yaelee</code> 不存在（虽然上一步 <code>-m</code> 已经创建了），这个命令也不会出错。</p>



<p>然后，编辑 <code>authorized_keys</code> 文件，将你的公钥粘贴进去。同样，我们用 <code>sudo -u yaelee</code> 来确保文件是以 <code>yaelee</code> 用户的身份创建和编辑的。</p>



<pre class="wp-block-code"><code>sudo -u yaelee nano /home/yaelee/.ssh/authorized_keys</code></pre>



<p>在打开的编辑器里，粘贴你的公钥内容。公钥通常长这样（以 <code>ssh-ed25519</code> 或 <code>ssh-rsa</code> 开头）：</p>



<pre class="wp-block-code"><code>ssh-ed25519 *******</code></pre>



<p>粘贴完成后，保存并关闭文件（nano 编辑器通常是按 <code>Ctrl + X</code>，然后按 <code>Y</code> 确认保存，回车确认文件名）。</p>



<p><strong>重要：</strong> 确保 <code>.ssh</code> 目录和 <code>authorized_keys</code> 文件的权限设置正确。通常，<code>.ssh</code> 目录的权限应该是 <code>700</code> (只有用户自己有读写执行权限)，<code>authorized_keys</code> 文件的权限应该是 <code>600</code> (只有用户自己有读写权限)。虽然 <code>sudo -u</code> 创建时权限通常是对的，但最好还是检查一下：</p>



<pre class="wp-block-code"><code>sudo -u yaelee chmod 700 /home/yaelee/.ssh
sudo -u yaelee chmod 600 /home/yaelee/.ssh/authorized_keys</code></pre>



<h2 class="wp-block-heading">第五步：为新用户设置密码（可选但推荐）</h2>



<p>虽然我们后面会禁用密码登录SSH，但为用户设置一个密码仍然是一个好的习惯，以备不时之需（比如本地登录）。</p>



<pre class="wp-block-code"><code>passwd yaelee</code></pre>



<p>系统会提示你输入并确认新用户的密码。</p>



<h2 class="wp-block-heading">第六步：更改新用户的默认Shell为Bash</h2>



<p>默认情况下，新用户的Shell可能是 <code>/bin/sh</code>，它可能是 <code>/bin/bash</code> 的一个简化版本或者指向其他Shell。大多数人更习惯使用功能更强大的 <code>/bin/bash</code>。</p>



<p>要修改用户的默认Shell，需要编辑 <code>/etc/passwd</code> 文件。这个文件包含了系统中所有用户的信息。</p>



<pre class="wp-block-code"><code>nano /etc/passwd</code></pre>



<p>找到你新创建的用户 <code>yaelee</code> 的那一行。它看起来会像这样（注意最后一部分）：</p>



<pre class="wp-block-code"><code>yaelee:x:1000:1000::/home/yaelee:/bin/sh</code></pre>



<p>将这一行的最后一部分，也就是 <code>/bin/sh</code>，修改为 <code>/bin/bash</code>：</p>



<pre class="wp-block-code"><code>yaelee:x:1000:1000::/home/yaelee:/bin/bash</code></pre>



<p>保存并关闭文件。下次 <code>yaelee</code> 用户登录时，就会使用 <code>/bin/bash</code> 作为默认Shell了。</p>



<h2 class="wp-block-heading">第七步：禁用SSH密码登录，只允许密钥登录</h2>



<p>为了进一步提高安全性，我们应该禁止通过密码进行SSH登录，只允许使用密钥对登录。</p>



<p>编辑SSH服务器的配置文件 <code>/etc/ssh/sshd_config</code>：</p>



<pre class="wp-block-code"><code>nano /etc/ssh/sshd_config</code></pre>



<p>找到 <code>PasswordAuthentication</code> 这一行。它前面可能有一个 <code>#</code> 符号表示被注释掉了。</p>



<pre class="wp-block-code"><code>#PasswordAuthentication yes</code></pre>



<p>取消前面的 <code>#</code>，并将 <code>yes</code> 改为 <code>no</code>：</p>



<pre class="wp-block-code"><code>PasswordAuthentication no</code></pre>



<p>你可能还需要检查并确保 <code>PubkeyAuthentication yes</code> 这一行没有被注释掉（通常是默认开启的）。</p>



<p>保存并关闭文件。然后，重启SSH服务使配置生效：</p>



<pre class="wp-block-code"><code>systemctl restart sshd</code></pre>



<p>或者对于一些旧系统：</p>



<pre class="wp-block-code"><code>service sshd restart</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>重要警告：</strong> 在执行这一步之前，请务必确认你已经成功通过SSH密钥登录过新创建的用户！否则一旦禁用密码登录，你可能会无法再次登录服务器（除非你有其他登录方式，比如VNC或控制台）。强烈建议先保持Root用户的SSH连接打开，用新用户开一个新终端窗口测试登录成功后再继续。</p>
</blockquote>



<h2 class="wp-block-heading">第八步：配置 <code>sudo</code> 免密码执行（可选）</h2>



<p>这一步是让你的日常操作更方便，通过 <code>sudo</code> 执行命令时不再需要输入密码。<strong>请注意，这会稍微降低安全性，因为任何能够以该用户身份执行命令的人都可以无需密码地获得Root权限。</strong> 如果你对安全性要求极高，可以跳过这一步。</p>



<p>编辑 <code>sudo</code> 的配置文件，推荐使用 <code>visudo</code> 命令，它会在保存前检查语法，避免配置错误导致 <code>sudo</code> 无法使用：</p>



<pre class="wp-block-code"><code>visudo</code></pre>



<p>找到允许 <code>sudo</code> 用户组执行 <code>sudo</code> 的那一行。根据你第二步确认的组名，它可能是：</p>



<pre class="wp-block-code"><code>%sudo   ALL=(ALL:ALL) ALL</code></pre>



<p>或者</p>



<pre class="wp-block-code"><code>%wheel   ALL=(ALL:ALL) ALL</code></pre>



<p>将这一行修改为在 <code>ALL</code> 前面加上 <code>NOPASSWD:</code>：</p>



<pre class="wp-block-code"><code>%sudo   ALL=(ALL:ALL) NOPASSWD:ALL</code></pre>



<p>或者</p>



<pre class="wp-block-code"><code>%wheel   ALL=(ALL:ALL) NOPASSWD:ALL</code></pre>



<p>保存并关闭文件（<code>visudo</code> 在nano模式下也是 <code>Ctrl + X</code>, <code>Y</code>, 回车）。</p>



<p>现在，使用 <code>yaelee</code> 用户登录后，执行 <code>sudo</code> 命令就不需要输入密码了。</p>



<h2 class="wp-block-heading">测试一下！</h2>



<p>配置完成后，强烈建议你不要急着关闭Root用户的SSH连接。先打开一个新的终端窗口，尝试使用你新创建的用户和SSH密钥进行登录：</p>



<pre class="wp-block-code"><code>ssh yaelee@你的VPS的IP地址</code></pre>



<p>如果能够成功登录，恭喜你！然后尝试执行一个需要Root权限的命令，比如更新软件包列表：</p>



<pre class="wp-block-code"><code>sudo apt update # 或者 sudo yum update / sudo dnf update</code></pre>



<p>如果你配置了 <code>NOPASSWD</code>，这个命令应该直接执行，不需要输入密码。如果没有配置 <code>NOPASSWD</code>，系统会提示你输入 <code>yaelee</code> 用户的密码。</p>



<p>确认新用户和 <code>sudo</code> 都能正常工作后，你就可以放心地退出Root用户了。</p>



<h2 class="wp-block-heading">总结</h2>



<p>通过上面这几个步骤，我们就成功地为VPS创建了一个用于日常操作的非Root用户，并通过SSH密钥增强了登录安全性，同时保留了通过 <code>sudo</code> 在需要时获取Root权限的能力。这大大降低了Root账户直接暴露在外的风险，让你的VPS更加安全。</p>



<p>希望这篇文章对你有帮助！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.hrk386.com/archives/40/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">40</post-id>	</item>
	</channel>
</rss>
