共存带来的三类冲突
第一类是同一名称同时存在于本地与目录,系统按解析顺序只认其中一个,同名账号在家目录、组归属与权限上可能完全不同于预期。第二类是编号范围重叠:域映射分配的数字区间与本地已用 UID 撞车,导致域用户意外获得本地账号的文件访问权。第三类是宽限期问题:本地服务账号被废弃但仍在跑定时任务,切换过程中任务会静默失败。
基本信息
| 适用平台 | Linux 与 Windows 混合的域集成环境 |
|---|---|
| 解析顺序 | 由名称服务切换配置决定 |
| 编号规划 | 本地账号、域映射各占独立区间 |
| 判断依据 | id、getent passwd 显示的实际来源 |
| 迁移顺序 | 先建域身份,再改服务配置,最后停用本地账号 |
典型场景与建议
| 场景 | 风险 | 建议做法 |
|---|---|---|
| 域与本地同名账号 | 解析到非预期账号,权限与家目录错误 | 改名或明确解析优先级并复核影响 |
| 编号范围重叠 | 域用户获得本地账号权限 | 划定互不重叠的区间并核验 |
| 服务改用域账号 | 账户密码策略变化导致服务中断 | 改用托管服务账号或明确密码轮换流程 |
| 停用本地账号 | 定时任务静默失败 | 先比对进程与任务清单再停用 |
| 审计追溯 | 分不清操作来自哪个身份 | 统一命名规范,保留来源可辨识 |
核对身份来源
核对身份来源
getent passwd svc # 名称解析到的是哪个来源的账号
id svc # 查看 UID 与组归属是否符合预期
getent passwd | awk -F: '$3>=100000' | head # 粗查域映射区间是否与本地重叠
systemctl list-timers --all | head -n 10 # 核对定时任务使用的身份
crontab -l -u svc 2>/dev/null # 本地账号的任务清单停用本地账号前必须清点所有以该身份运行的服务、计划任务与挂载凭据。这类账号往往被遗忘在多个位置,停用后故障会零散出现,且报错信息通常只提权限不足,很难直接联想到账号变更。
判断某次访问到底用的哪个身份,最可靠的办法是把名称解析结果与实际文件属主数字对照,而不是看登录名。在域与本地共存的机器上,同名账号让「看起来是 A」和「实际是 B」之间的差异变得非常隐蔽。