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/吊销即时失效/禁用清空/删除回收)
This commit is contained in:
+10
-6
@@ -4,17 +4,21 @@
|
||||
# 节点进程以 usernode 用户运行,仅允许以 root 执行固定命令(禁任意 shell),
|
||||
# 命令参数由程序内强校验(pkg.ValidateSystemAccount 等),见 PLAN §9。
|
||||
#
|
||||
# 注意:以下命令路径基于 Debian/Ubuntu(/usr/sbin)。Alpine 为 /usr/sbin;
|
||||
# 请按发行版调整,并确保 usernode 用户无 NOPASSWD 的通用提权入口。
|
||||
# 注意:以下命令路径基于 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
|
||||
/usr/sbin/userdel, /usr/bin/passwd, \
|
||||
/bin/mkdir, /bin/chmod, /bin/chown, /usr/bin/install
|
||||
|
||||
# 说明:
|
||||
# - useradd -m -d <home> -s <shell> -g external <name> 创建账号
|
||||
# - useradd -m -d <home> -s <shell> -g external <name> 创建账号
|
||||
# - usermod 预留(如 usermod -e 过期),M4 回收期使用
|
||||
# - userdel -r <name> 删除账号及家目录
|
||||
# - passwd -l / -u <name> 锁定/解锁口令
|
||||
# - 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 模式:必须显式配置
|
||||
|
||||
Reference in New Issue
Block a user