前言
很多刚接触云服务器的朋友,会遇到这样的问题:朋友、同学想一起玩 Linux、做开发测试,如果每个人单独买一台云服务器,每台几十上百,开销直接翻倍。
其实一台低配云服务器,完全可以支持多个人同时 SSH 登录使用。通过创建 Linux 子账户,实现账号隔离,大家互不干扰,共用一台机器,省下多台服务器的开销,经济又实惠。
核心思路:不共享 root 超级管理员账号,给每个人分配独立普通账号,各自有独立文件目录,权限可控,充分榨干单台服务器的价值。
系统环境:OpenCloudOS / CentOS 系列,Xshell 作为连接工具。
⚠️重要提醒:多人共用服务器,严禁把 root 账号分给所有人使用,root 拥有系统全部权限,误操作很容易直接把服务器搞崩。
一、原理简单讲清楚
-
root:服务器最高权限账号,只留给少数管理员;
-
普通子账号:每个使用者一个独立账号,拥有自己专属家目录 `/home/用户名`;
-
权限区分:普通用户只能操作自己的文件夹,不能随意改动系统;需要管理员能力的账号,可以赋予 sudo 权限;
-
所有人共用服务器 CPU、内存、带宽,不用重复购买实例,实现降本。
二、使用 root 登录服务器
打开 Xshell,连接你的服务器:
ssh root@你的服务器公网IP
成功登录,看到 `root@xxx \~#` 代表已经是 root 管理员身份。
三、创建普通用户账号
创建账号命令模板
useradd -m -s /bin/bash 用户名
passwd 用户名
-
-m:自动生成该用户专属家目录 `/home/用户名`
-
-s /bin/bash:分配可交互 shell,没有这个参数将无法 Xshell 远程登录
实操示例
创建两个账号,user_a、user_b
# 创建user_a
useradd -m -s /bin/bash user_a
passwd user_a
# 创建user_b
useradd -m -s /bin/bash user_b
passwd user_b
执行`passwd`之后输入密码,输入时屏幕不会显示字符,属于 Linux 正常现象,连续输入两遍即可。
💡密码建议设置复杂度高一点,规避服务器被暴力扫描爆破。
两种权限划分
1. 普通账号(给到大部分使用者)
上面创建完默认就是普通账号,仅能读写自己家目录,不能修改系统核心文件,不能执行高级操作。
2. 带 sudo 管理员权限(仅给1‑2个负责人)
如果某个账号需要拥有管理员能力,可以加入 wheel 用户组,使用`sudo`来执行 root 权限命令。
usermod -aG wheel user_a
执行完成,user_a 就可以通过`sudo + 命令`执行管理员操作。
验证账号信息:
id user_a
四、其他小伙伴如何使用 Xshell 登录自己的账号
其他使用者不需要 root 账号,直接使用分配好的子账号登录服务器。
方式1:Xshell 新建会话
-
协议:SSH
-
主机:服务器公网 IP
-
用户身份验证:填写分配的用户名 + 设置好的密码,直接连接。
方式2:Xshell 命令行输入
ssh user_a@你的服务器IP
登录成功提示符:
`user_a@VM‑0‑7‑opencloudos \~$`
末尾符号`$`代表普通用户;root 账号提示符末尾为`#`。
测试 sudo 权限(已加入 wheel 组账号)
sudo ls /root
输入自己账号的密码,能够列出内容,代表管理员权限生效。
五(可选)搭建多人共享文件夹
如果小伙伴之间需要互相传递文件,可以创建公共共享目录,每个人私有目录互相隔离,共享目录大家都可以读写。
# 创建共享目录
mkdir /home/share
# 创建共享用户组
groupadd share_group
# 将需要使用共享目录的用户加入组
usermod -aG share_group user_a
usermod -aG share_group user_b
# 设置目录权限
chown root:share_group /home/share
chmod 770 /home/share
-
每个人自己的文件放在 `/home/user_a`,别人无法访问;
-
需要互相分享的文件放到 `/home/share`。
六、账号日常管理命令(root 执行)
# 查看服务器全部用户
cat /etc/passwd
# 删除用户,同时删除家目录文件
userdel -r user_b
# 临时禁用账号,禁止登录(保留账号数据)
passwd -l user_b
# 恢复被锁定账号
passwd -u user_b
# 修改账号密码
passwd user_a
七、多人共用服务器安全优化(强烈推荐)
多人使用场景,建议关闭 root 远程登录,所有人只用子账号登录,管理员依靠`sudo`获取权限。
⚠️操作前确认至少有一个账号拥有 sudo 权限,否则会远程无法登录服务器;云服务商网页 VNC 控制台可以作为兜底救援手段。
编辑 ssh 配置文件
vi /etc/ssh/sshd_config
找到配置项
PermitRootLogin yes
修改为
PermitRootLogin no
保存退出,重启 ssh 服务生效
systemctl restart sshd
八、常见踩坑排错
-
Xshell 登录报错 Access denied👉 创建用户命令缺少参数 `-s /bin/bash`,没有分配可登录 shell。
-
使用 sudo 提示不在 sudoers 文件👉 用户没有加入 wheel 组,执行:`usermod -aG wheel 用户名`
-
用户登录没有家目录👉 创建账号必须带上 `-m` 参数,否则不会自动生成家目录。
写在最后|经济使用小提示
-
一台轻量云服务器,合理分配子账号,满足多人学习 Linux、练命令、测试项目,不用每人购置一台服务器,大大降低成本;
-
权限做好隔离,普通同学分配普通账号,sudo 权限只给到少数负责人;
-
禁止多人共用 root 账号,避免误操作损毁系统;
-
服务器不要跑违规业务,否则会被云厂商封禁实例。
当小伙伴不需要使用的时候,可以直接锁定或者删除账号,灵活管理。
