Ubuntu系统设置sudo普通用户

背景

在之前的文章中,站长已经说明了VPS服务器用户的权限问题,如果你登录SSH后发现自己是root用户,那么为了安全最好是创建一个普通用户,用这个普通用户作为日常运维服务器的主要账户。如果你还不了解自己的的权限,请查看新拿到的VPS服务器要怎么做中的检查系统权限这条。


确认root用户权限

开始操作之前,请再次确认自己是root权限,并配置好了私钥匙可以顺利通过SSH工具连接到你的服务器!

如果你是看了之前的文章,相信你现在已经可以通过Tabby连接到你的服务器了,那么我们开始

设置普通用户的脚本

为了方便,站长这边设置好了脚本,复制一下内容,然后粘贴到SSH工具中,根据提示一步步设置就好了

#!/bin/bash

# 1. 确保以 root 权限运行
if [ "$EUID" -ne 0 ]; then
  echo "请使用 root 权限运行此脚本"
  exit 1
fi

# 2. 验证 root 是否存在授权密钥文件
if [ ! -f /root/.ssh/authorized_keys ]; then
  echo "错误:未在 /root/.ssh/authorized_keys 找到公钥文件!"
  echo "这意味着当前 root 可能不是通过密钥登录的,无法进行复制。"
  exit 1
fi

# 3. 获取新用户名
read -p "请输入要创建的新用户名 (例如 ubuntu, user 等): " NEW_USER
if id "$NEW_USER" &>/dev/null; then
    echo "错误:用户 $NEW_USER 已存在!"
    exit 1
fi

echo "======================================"
echo "正在创建用户 $NEW_USER ..."
useradd -m -s /bin/bash "$NEW_USER"

echo "请为 $NEW_USER 设置密码 (后续执行 sudo 命令提权时需要输入):"
passwd "$NEW_USER"

echo "将 $NEW_USER 加入 sudo 组以获取管理员权限..."
usermod -aG sudo "$NEW_USER"

echo "正在将 root 的 SSH 公钥复制给 $NEW_USER ..."
USER_HOME=$(eval echo ~$NEW_USER)
mkdir -p "$USER_HOME/.ssh"

# 核心修改:直接复制 root 的公钥文件
cp /root/.ssh/authorized_keys "$USER_HOME/.ssh/authorized_keys"

# 严格校准文件权限
chmod 700 "$USER_HOME/.ssh"
chmod 600 "$USER_HOME/.ssh/authorized_keys"
chown -R "$NEW_USER:$NEW_USER" "$USER_HOME/.ssh"

echo "======================================"
echo "✅ 用户 $NEW_USER 创建并复制公钥成功!"
echo "⚠️ 关键测试:请保持当前的 root 终端窗口不要关闭!"
echo "请打开 Tabby 或其他终端,尝试使用新用户 + 现有的私钥 进行免密登录测试。"

注意:设置好以后,不要关掉SSH工具,如果你用的是Tabby,请按照我们之前的开源SSH工具(免费)Tabby的实操步骤一文中给刚才创建好的普通用户设置一个登录方式,然后验证一下是否能连接成功!

设置好日常运维账户后,我们就可以放心的去设置禁用root登录,禁用密码登录了,具体请查看VPS服务器安全之SSH加固思路和实操

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注