管理服务器用户列表是服务器安全的基础,掌握查看、添加和删除用户的操作是每个运维人员的必备技能。
为什么服务器用户列表管理如此重要
服务器用户列表不是静态的清单,它直接反映系统内的访问权限、资源分配和潜在风险,每个用户账户都可能成为攻击入口,定期审计用户列表能有效降低被入侵的概率,行业共识认为,相当一部分安全事件源于用户账户管理松懈,比如长期不用的幽灵账户或权限过高的普通用户。
用户列表与系统安全的关系
- 每个用户账户对应一组权限,权限越分散,暴露面越大。
- 多用户环境下,一个账户被攻破可能导致横向移动,影响整个服务器。
- 定期清理用户列表,关闭不必要账户,是安全基线检查的首要步骤。
资源分配与审计需求
在多人共享服务器或云主机场景中,用户列表还承担资源配额功能,通过查看用户列表,你可以快速了解哪些账户占用大量磁盘或CPU资源,避免个别用户拖垮整体性能,据统计,缺乏用户列表管理的服务器,出现资源争抢的概率明显更高。
服务器用户列表怎么查看
不同操作系统查看用户列表的方式不同,但核心思路一致:通过系统存储用户信息的文件或API获取,这里分两种主流场景介绍。
Linux服务器用户列表查看命令
Linux将用户信息存入/etc/passwd文件,每行代表一个用户,用冒号分隔字段,常用命令包括:
cat /etc/passwd:直接输出全部用户,包含用户名、UID、GID、家目录、登录Shell。getent passwd:结果与cat相同,但会查询系统数据库,适合LDAP等集成环境。awk -F: '{print $1}' /etc/passwd:仅提取用户名,清单更简洁。
who/w:查看当前登录用户,实时监控谁在使用服务器。
想要查看所有用户的家目录占用情况,可以结合du命令,对用户列表进行逐个扫描,操作路径:先获取用户列表,再循环检查家目录大小。
Windows服务器用户列表查看
Windows Server 通过本地用户和组管理控制台呈现,但命令行更高效:
net user:列出所有本地用户账户,仅显示用户名。Get-LocalUser(PowerShell):输出详细用户状态,包括是否启用、密码过期时间等。- 对于域环境,使用
Get-ADUser(需要Active Directory模块)。
如果纯粹想快速导出用户列表,用net user > users.txt生成文本文件,便于后续处理。
对比两种系统的用户列表差异
| 特性 | Linux | Windows |
|---|---|---|
| 存储位置 | /etc/passwd, /etc/shadow | SAM数据库(注册表) |
| 查看命令 | cat, getent, awk | net user, PowerShell |
| 用户ID类型 | UID (整数) | SID (安全标识符) |
| 默认系统用户 | 较多,如daemon, bin | 较少,如SYSTEM, LOCAL SERVICE |
两者在用户列表管理上都有命令行和图形界面两种方式,但Linux更依赖命令,Windows在图形化上更友好,对于批量操作,脚本化是共通思路。
服务器用户列表权限设置
用户列表本身只是台账,真正发挥作用的是权限分配,权限设置不当,用户列表再干净也无用。
用户分类与权限模型
- 普通用户:只能读写自己的文件和目录,系统级操作受限。
- 管理员用户:拥有完全控制权限,LInux中的root,Windows中的Administrator。
- 系统用户:用于运行服务,如www-data、SYSTEM,通常没有交互式登录权限。
遵循最小权限原则:只给用户完成工作所需的最低权限,多数安全事件都源于权限过大,尤其是将普通用户加入sudo组或管理员组。
实操:Linux权限设置
修改文件权限用chmod,修改所有者用chown,日常操作路径:
- 查看当前用户列表:
cat /etc/passwd | grep /home找出所有普通用户。 - 检查用户所属组:
groups username。 - 限制用户只能访问特定目录:使用
chroot环境或ACL(访问控制列表)。
为新用户设置家目录并限制其他用户访问:
useradd -m newuser
chmod 700 /home/newuser
这样只有newuser自己可以进入家目录,其他用户被拒之门外。
实操:Windows权限设置
Windows通过文件属性安全选项卡配置,或使用icacls命令,操作路径:
- 打开用户列表(本地用户和组),确认用户账户。
- 右键点击文件夹 → 属性 → 安全 → 编辑 → 添加用户 → 分配权限。
- 使用命令行:
icacls C:folder /grant "username:(R,W)"授予读写权限。
注意:Windows权限继承和优先级的规则比Linux复杂,父目录权限会影响子目录,建议在设置用户列表权限时,先规划好目录结构,避免权限冲突。
服务器用户列表管理常见问题问答
服务器用户列表怎么删除用户且保留数据?
删除用户时,Linux默认会删除家目录和邮件池,但你可以手动指定保留数据,操作:
userdel -r username 会删除用户及其家目录,如果不想删除家目录,使用userdel username(不加-r),Windows中用net user username /delete,但不会自动删除用户配置文件,需手动清理C:Usersusername。始终先备份数据再删除,这是稳妥做法。
如何在服务器用户列表中批量添加用户?
批量场景常见于公司入职或项目组创建,Linux使用newusers命令,先准备一个文本文件,每行按username:password:UID:GID:comment:home:shell格式写入,然后用newusers < file导入,Windows可用PowerShell脚本:$users = Import-Csv users.csv; foreach ($u in $users) { New-LocalUser -Name $u.Name -Password (ConvertTo-SecureString $u.Password -AsPlainText -Force) }。注意密码安全,建议首次登录强制修改。
服务器用户列表里出现未知系统用户怎么办?
首次发现未知用户时,先排查是否来自软件安装,比如安装MySQL会创建mysql用户,安装Nginx会创建www-data用户,这些是正常系统用户,不应删除,如果用户列表出现异常名称或UID超过1000(Linux中普通用户通常从1000起),且不属于任何已知软件,需要立即检查登录日志:lastlog和/var/log/auth.log,确认是否有异常登录活动。发现未授权用户,应立即禁用并溯源,这是安全响应流程的一部分。
管理服务器用户列表不是一次性任务,而是持续性的运维工作,定期查看用户列表、审视权限设置、清理废弃账户,能显著降低服务器被误操作或攻击的风险,将用户列表管理纳入日常巡检清单,是保障服务器长期稳定运行的朴素而有效的方法。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/544651.html



