Files
usernode/deploy/sudoers.example
T
cao.wangrenbo a5f501dba4 feat(M2): SSH 密钥管理 — 公钥上传/重命名/吊销、authorized_keys 原子同步与吊销即时失效
- KeyService:crypto/ssh 解析校验(单行/类型/长度/去重指纹,拒 ssh-dss 与 RSA<2048),
  Create/Rename/Revoke/List,变更后以 DB 状态全量重写 authorized_keys(同步失败回滚)
- system 层:SyncAuthorizedKeys 完善 —— sudo 模式经白名单命令(mkdir/chown/chmod/install)
  落位并修正属主(sshd StrictModes),direct 模式 root 时同样修正属主;dry-run 计划日志
- API:GET/POST /me/keys、PATCH/DELETE /me/keys/:id(user 会话)、GET /users/:id/keys(admin),
  密钥操作带审计;deploy/sudoers.example 补充密钥同步白名单
- 版本 0.3.0-m2;测试:service 单元(校验/生命周期/回滚/权限)、system 直写落盘、
  API 全流程集成;容器 E2E 32 项 PASS(真实 useradd/authorized_keys/吊销即时失效/禁用清空/删除回收)
2026-08-29 23:55:39 +08:00

28 lines
1.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ws_usernode 节点专有用户 sudoers 白名单(生产部署)
#
# 安装:将本文件复制为 /etc/sudoers.d/usernode 并执行 `visudo -c` 校验。
# 节点进程以 usernode 用户运行,仅允许以 root 执行固定命令(禁任意 shell),
# 命令参数由程序内强校验(pkg.ValidateSystemAccount 等),见 PLAN §9。
#
# 注意:以下命令路径基于 Debian/Ubuntu/usr/sbin、/usr/bin、/bin)。
# Alpine 为 /usr/sbin、/usr/bin、/bin;请按发行版调整,并确保 usernode
# 用户无 NOPASSWD 的通用提权入口。
usernode ALL=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/usermod, \
/usr/sbin/userdel, /usr/bin/passwd, \
/bin/mkdir, /bin/chmod, /bin/chown, /usr/bin/install
# 说明:
# - useradd -m -d <home> -s <shell> -g external <name> 创建账号
# - usermod 预留(如 usermod -e 过期),M4 回收期使用
# - userdel -r <name> 删除账号及家目录
# - passwd -l / -u <name> 锁定/解锁口令
# - mkdir -p / chown / chmod:创建并修正 ~/.ssh 目录属主(sshd StrictModes
# - install -o <user> -g external -m 0600 <tmp> <dest>authorized_keys 原子落位
# - 不授予 chsh/其他命令的任意执行;若需变更默认 shell 请收紧为固定参数
#
# 生产禁止 system.sudo=false 的 direct 模式:必须显式配置
# [system]
# sudo = true
# dry_run = false