Administrator
Published on 2025-06-18 / 20 Visits
0
0

Linux服务器用户创建标准实践(系统用户与普通用户区分)

一、背景说明

在企业级 Linux 运维环境中,用户账户应根据用途、安全等级和登录权限进行严格分类:

用户类型

用途

是否允许登录

UID范围

说明

系统用户

服务守护进程、系统运行账户

❌ 禁止登录

1–999

无需登录,仅用于启动系统服务

普通用户

日常管理、远程登录、运维使用

✅ 允许登录

1000 以上

需拥有家目录、Shell 访问权限


二、用户分类与UID范围说明

UID 范围

用户类型

描述

0

超级用户

root,系统管理员,权限最高

1 – 999(或499)

系统用户

服务组件用户,如 sshdnginx

1000 – 65533

普通用户

允许登录的用户,一般由管理员创建

65534

nobody

限权匿名账户

💡 注:某些发行版如 RHEL/CentOS 使用 1–499 为系统用户,1000 起为普通用户;Debian/Ubuntu 使用 100–999。


三、用户创建目标场景

目标1:创建一个系统服务用户 backupsvc

  • 用于运行定时备份任务;

  • 无需登录系统;

  • 无家目录;

  • UID在系统用户范围内(如指定为 300);

  • 注释说明账户用途。

目标2:创建一个普通登录用户 devops

  • 具备登录权限;

  • 自定义家目录 /data/home/devops

  • 设置注释描述;

  • 加入指定组 developers

  • 默认 shell 为 /bin/bash


四、实际创建命令


1. 创建系统用户 backupsvc(不能登录)

useradd -r -u 300 -s /sbin/nologin -M -c "Backup automation service user" backupsvc

参数说明:

参数

含义

-r

创建系统账户(系统UID段)

-u 300

显式指定 UID 为 300(企业可统一规范)

-s /sbin/nologin

设置 shell 为不可登录

-M

不创建 home 目录(系统用户通常不需要)

-c

注释说明,供 fingergetent passwd 显示

创建完成后可验证:

id backupsvc
grep backupsvc /etc/passwd

2. 创建普通用户 devops(允许登录)

groupadd developers                     # 先建用户组(如尚未存在)

useradd -m -d /data/home/devops -s /bin/bash -c "DevOps Engineer Login Account" -g developers devops
passwd devops

参数说明:

参数

含义

-m

自动创建 home 目录(默认在 /home/devops,此处自定义)

-d /data/home/devops

指定 home 目录路径

-s /bin/bash

指定可交互 shell,允许登录

-g developers

指定主组

-c

账户描述

设置密码后,该用户可使用 SSH 正常登录。


五、企业标准建议

用户 UID/GID 分配规范

  • 系统用户 UID:由架构组预先分配(如 300–499 区间保留给运维服务账户);

  • 普通用户 UID:建议自动递增(如 1000起),也可通过 CMDB 或 AD统一规划;

  • 若集成 LDAP/NIS,应避免本地与目录服务 UID 冲突。


Shell 登录策略建议

场景

推荐 shell 设置

原因说明

服务用户

/sbin/nologin

禁止登录,避免被暴力破解

普通用户

/bin/bash/bin/sh

提供交互式 shell

审计用户

/bin/bash + sudo 控制

限权 + 审计


审计与合规建议

  • 每次新增用户建议记录到用户登记表或 CMDB 中;

  • 设置 chage 密码过期策略,增强账户安全;

  • /etc/passwd/etc/shadow 变更设置审计监控;

  • 可配置 /etc/login.defs 中的默认 UID、家目录权限等策略;



Comment