这个场景要解决什么
新同事入职要开服务器账号,规范流程是一条脚本化的链条:建组、建号、设密码策略、按需授权、最后验证登录与权限。目标是三件事——账号能用、权限最小、操作留痕。跳过任何一步都会在后来变成麻烦:权限给大了收不回来,密码策略没设过不了基线检查,授权规则写错用户会一直报没有权限。
基本信息
| 适用场景 | 新员工需要服务器登录账号 |
|---|---|
| 目标 | 账号可用、权限最小、可审计 |
| 工具链 | groupadd、useradd、passwd、chage、sudoers 片段、验证命令 |
| 前提 | 先确认命名规范与需要加入的用户组 |
标准步骤
- 按部门或职责建组,让权限按组授予而不是按人
- 建账号,指定 UID、主组、附加组与登录 shell
- 设置密码策略,并要求首次登录强制改密
- 按最小权限写 sudo 允许的具体命令,不给全权
- 验证登录、组关系与授权是否与预期一致
第 1 步 建组与账号
第 1 步 建组与账号
groupadd -g 2001 developers
useradd -m -u 2001 -g developers -G wheel -s /bin/bash -c 'Zhang San' zhangsan
passwd zhangsan第 2 步 密码策略
第 2 步 密码策略
chage -M 90 -m 7 -W 14 -d 0 zhangsan
chage -l zhangsan第 3 步 按需授权
第 3 步 按需授权
echo 'zhangsan ALL=(ALL) /bin/systemctl restart myapp' > /etc/sudoers.d/zhangsan
chmod 440 /etc/sudoers.d/zhangsan
visudo -c第 4 步 验证
第 4 步 验证
id zhangsan
su - zhangsan -c 'sudo -l'
lastlog -u zhangsan关键要素
| 要素 | 作用 | 要点 |
|---|---|---|
| UID 与 GID | 账号与组的数字标识 | 统一规划,避免与已有编号冲突 |
| 附加组 | 决定能访问哪些共享资源 | 按职责最小化 |
| 登录 shell | 允许交互还是禁止登录 | 服务账号用 nologin |
| 密码策略 | 有效期与最短长度 | 要符合基线要求 |
| sudo 规则 | 允许执行的具体命令 | 落到独立片段并按命令白名单 |
交付账号时用 chage -d 0 强制首次登录改密,管理员就不会长期知晓用户口令,也便于后续审计。
把新用户直接塞进全权组是很多团队的默认动作,审计时很难收回。把授权落到具体命令白名单,比事后收紧成本低得多。
开通流程里最容易漏的三件事:把账号加入正确的授权组而不是逐条加白名单、限制登录来源或直接设为不可交互登录、把账号登记进资产与台账。这三项与账号本身同等重要,缺任何一项都会在审计或人员变动时暴露成风险。