一、背景
公司申请机器登陆权限,只有worker权限能长期保留,super权限会一个月后收回,因此对于一些服务的运维与问题排查而言,仅仅只有worker权限,无法切到root用户下执行一些命令,会非常不方便。如果直接配置免密切换root,那所有申请了登陆权限的人都可以直接切到root,不通角色权限的区分就形同虚设了,因此设计了一个兼顾安全性的免密切换root的方案,以保证负责该机器服务的管理人员在 super 权限被回收的情况下,仍具备紧急进入 root 的能力,从而在服务出现故障时能够第一时间排查和修复,避免影响业务运行。
二、方案设计
-
新建跳板用户
- 创建一个专属用户(如
rootjump),该用户用于作为进入 root 的跳板。 - 切换到此用户需要输入密码,且密码仅持有者本人知晓。
- 创建一个专属用户(如
-
配置免密切 root
-
在
/etc/sudoers文件中为该跳板用户配置:cssrootjump ALL=(ALL) NOPASSWD: /bin/su -仅此用户可免密执行
su -切换到 root。
-
-
权限隔离保障
- 其他拥有 worker 权限的业务用户无法直接切到该跳板用户(因不知道其密码),因此也就无法利用免密切 root 功能。
- 保留了 root 原密码,防止直接 root 登录。
三、步骤
- 新建跳板用户
必须在root用户下进行操作,我的用户名为 minio:
markdown
sudo useradd -m minio
sudo passwd minio
- `-m` → 自动创建 home 目录(如 `/home/minio`)
- 然后 `passwd minio` 设置密码,会提示你输入两遍
- 配置免密切 root
javascript
在 `/etc/sudoers` 文件中为该跳板用户配置:
vim /etc/sudoers
设置
minio ALL=(ALL) NOPASSWD: /bin/su -
仅此用户可免密执行 `sudo su -` 切换到 root。
- 检验
