服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-08 简米科技 3,548 字 8 分钟阅读

服务器用户管理如何高效配置与安全防护?用户管理怎么设置更安全?

导读服务器用户管理,本质上就两件事:把每个运维人员的账号做成独立身份凭证,再把权限精确控制到“够用即止”的边界上,这两件事做扎实,比任何安全软件都管用,服务器权限配置最基本的三个习惯我见过太多团队管理服务器用户的方式,就是一个root密码轮流传,这个习惯不改,后面所有配置都是白搭,服务器权限配置的基础,其实是管理习……

服务器用户管理,本质上就两件事:把每个运维人员的账号做成独立身份凭证,再把权限精确控制到“够用即止”的边界上。这两件事做扎实,比任何安全软件都管用。

服务器权限配置最基本的三个习惯

我见过太多团队管理服务器用户的方式,就是一个root密码轮流传,这个习惯不改,后面所有配置都是白搭,服务器权限配置的基础,其实是管理习惯的养成。

第一,严禁共享root账号。 这就像办公室大门只有一把钥匙,谁丢了都说不清,正确做法是每个维护人员一个独立账号,谁登录、敲了什么命令,全部记录在案,事后可追溯。

第二,权限分配遵循最小化原则。 绝大多数日常操作根本不需要root权限,查看日志、重启服务、部署代码,用普通用户加sudo授权足以搞定,我见过很多团队实施服务器用户权限配置方案时,第一步就是把所有人从root组踢出去,这一步做完,安全性直接提升一个等级。

第三,程序进程和服务账号独立运行。 Nginx、MySQL、Redis,每类服务单独建一个低权限的系统用户,禁止使用root跑任何服务进程,即便是被入侵渗透,攻击者拿到的也只是受限权限,无法直接控制整个服务器。

服务器用户权限配置的实操路径

下面说点能直接操作的,假设这是一台全新的Linux服务器,我们在上面完成一整套用户配置流程。

创建普通运维账号

使用adduser命令创建用户时,系统会自动生成home目录和默认邮件目录,比useradd更适合新手理解:

adduser zhangsan
passwd zhangsan

在CentOS/RHEL系和一些Debian版本上,需要手动指定shell和home目录:

useradd -m -d /home/zhangsan -s /bin/bash zhangsan
echo 'zhangsan:这里写密码' | chpasswd

创建完成后务必测试一次。用失败的安全壳层(SSH)登录新账号,确认能正常登录再往下走,这一步能避免搞半天结果用户根本连不上服务器的尴尬。

把用户加入sudo组

大多数发行版中,wheel组或者sudo组内的用户天然拥有sudo提权资格,执行:

usermod -aG wheel zhangsan    # CentOS/RHEL系
usermod -aG sudo zhangsan     # Debian/Ubuntu系

然后用zhangsan账号执行sudo whoami,如果输出root,说明sudo权限生效了。

配置sudo免密或限权策略

每次输密码确实麻烦,但直接改成NOPASSWD:ALL就完全放开了,普通用户和root没区别,比较稳妥折中的方式是只对指定命令放开免密,编辑/etc/sudoers文件时用visudo命令,不要直接改:

# 允许zhangsan无密码重启nginx和php-fpm
zhangsan ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl restart php-fpm

这里就不展开用户sudo权限配置的所有细节,但核心思路是:能限制到单条命令就不放开整个目录,能限制到指定端口就不放开所有端口。

禁用root远程登录

在/etc/ssh/sshd_config中把PermitRootLogin改为no,执行systemctl reload sshd或systemctl restart sshd使配置生效,

务必保留一个已开着的SSH会话再尝试连接新会话,确认root账号确实不能远程登录,改坏配置是运维最常翻车的翻车点,保底方式防身不可少。

linux用户管理命令的日常巡检清单

现在我每天到公司第一件事,不是看邮箱,而是先过一遍服务器上的用户状态,linux用户管理命令体系本身不复杂,但需要形成习惯,以下是我的自用清单位:

检查当前在线用户:

who
w
lastlog

lastlog能看出每个账号上次登录时间和来源IP,那些几个月没登录的老账号,就得考虑是不是该清理掉。

检查用户密码有效期:

chage -l zhangsan

查看用户所属组和权限:

groups zhangsan
id zhangsan

查看登录失败记录:

lastb

我的习惯是每周五下午巡检一次,把异常登录记录和长期未使用的账号整理成清单,该锁的锁,该删的删,月月如此,半年下来服务器里连个可疑的临时账号都留不住。

云服务器用户管理的安全加固

提到云服务器,就要多讲一步,云服务器的公网IP是互联网上公开的,IP暴露在全球扫描器的攻击范围内,密码爆破每时每刻都在发生。

改用SSH密钥登录

云服务器用户管理的第一个加固动作,就是关掉密码登录,强制密钥认证,具体操作两步走:

在本地生成密钥对:

ssh-keygen -t ed25519 -C "zhangsan@example.com"

把公钥复制到服务器上:

ssh-copy-id -i ~/.ssh/id_ed25519.pub zhangsan@服务器IP

然后在服务器上编辑/etc/ssh/sshd_config,找到PasswordAuthentication改为no,重启SSH服务,此后云服务器上任何账号都只能通过密钥登录,密码爆破直接失效,业内专家指出,这样配置之后,暴力破解尝试基本被杜绝,剩下的只是扫描器在门口空撞。

锁定登录失败次数

在/etc/pam.d/sshd或使用fail2ban工具设置失败锁定策略。连续失败3次即锁定10分钟,能有效延缓恶意爆破,很多云厂商的控制台自带安全组规则,可以设置入方向只允许公司公网IP访问22端口,效果也很好。

定期审查sudo授权记录

很多服务器被入侵都不是漏洞攻破的,而是sudo权限被滥用,每次执行sudo -l查看当前用户有哪些sudo权限,软件装多了之后,这些权限会越积越多,需要定期收敛,建议建立一个服务器用户权限配置台账,记录每个账号的托管权限、sudo授权范围、密钥指纹、归属人和联系方式谁停机离职,照着台账清算即可。

用户账号的停产和离职清理流程

做服务器运维的都知道,离职交接的混乱程度和公司规模成正比,刚才还在兼职的同事突然说不在公司干了,但手里还有root密码和SSH密钥这种情况并不少见。

规整化的处理流程是:先锁账号、再清密钥、最后改相关服务密码和token。

锁定账号:

usermod -L zhangsan

踢掉该用户的所有在线会话:

pkill -u zhangsan

清理其授权密钥:

rm /home/zhangsan/.ssh/authorized_keys

再顺手删除或接管他的cron定时任务:

crontab -u zhangsan -r

这四步走完,人虽然还在公司,但已经碰不到任何服务器了。把用户清理做成标准化流程,不管多紧急的离职,都能按步骤推进,不遗漏账。

常见问题解答

问:服务器添加新用户后登录报错“User not in sudoers”,怎么解决?

答:执行usermod -aG wheel 用户名(RHEL/CentOS系)或usermod -aG sudo 用户名(Debian/Ubuntu系),将用户加入对应管理组,如果仍不行,直接用visudo编辑/etc/sudoers,确认该用户名或组名规则存在且未被注释。

问:服务器用户忘记密码了,如何重置?

答:使用root账号执行passwd 用户名,输入两次新密码即可,若已禁用root远程登录且本地有sudo权限,可先以普通用户登录,再执行sudo passwd 用户名,需要注意的是,修改密码不会影响已有SSH密钥的有效性,仅密码登录方式会立即变更。

问:如何查看服务器上有哪些用户?

答:执行cat /etc/passwd | grep '/bin/bash'可列出所有可登录的普通用户账号;执行cat /etc/shadow可查看各个账号密码策略详情和后四位权限信息参考值,其中shadow文件权限为root专用,普通用户无权限读取。


最后一件事:服务器用户管理的核心结论就是闭环创建账号就走最小权限,使用账号就有操作审计,离职注销就及时回收,形成用户从开号到销号的完整生命周期管理。 无论多复杂的云环境还是传统的物理机,这套闭环一直适用,其他所有安全配置不过是在这之上的加固补充。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱