为SaltStack添加PAM与CherryPy认证用户及权限配置咨询
解决SaltStack salt-api中添加用户及权限配置的问题
嘿,我来帮你一步步搞定myuser的添加和权限配置细节~
1. 先创建系统级的myuser(因为用的是PAM认证)
因为你配置的是pam认证后端,这个myuser必须是服务器上真实存在的系统用户,所以先创建它:
- 创建用户:
# 通用Linux发行版 useradd myuser # 如果是Debian/Ubuntu系,用adduser会更友好(自动创建家目录等) adduser myuser - 设置用户密码:
按照提示输入并确认密码即可。passwd myuser
2. 确认你的external_auth配置(并按需精细化权限)
你的现有配置已经正确赋予了myuser最高权限,这里再确认格式没问题:
external_auth: pam: myuser: - .*这个规则表示myuser可以在所有minion节点上执行所有Salt模块/命令。如果需要更精细的权限控制(比如限制只能执行特定模块、只能操作特定minion),可以修改规则,举几个常用例子:
- 只允许执行
test.ping模块:myuser: - test.ping- 允许所有
test开头的模块:myuser: - test.*- 只允许操作
minion-web01节点,且只能执行cmd.run:myuser: - 'minion-web01:cmd.run'- 允许运行Salt Runner命令:
myuser: - '@runner'- 允许运行Salt Wheel命令:
myuser: - '@wheel'
3. 重启salt-master使配置生效
修改完/etc/salt/master后,必须重启salt-master服务才能让新配置生效:
# Systemd系统(CentOS7+/Ubuntu16.04+) systemctl restart salt-master # SysVinit系统(老版本CentOS/Ubuntu) service salt-master restart
4. 测试认证是否成功
可以用curl命令测试登录接口,验证myuser是否能正常获取认证token:
curl -k https://localhost:8000/login \ -H "Content-Type: application/json" \ -d '{"username": "myuser", "password": "你的密码", "eauth": "pam"}'
-k参数是忽略自签SSL证书的验证(因为你用的是localhost的自签证书)- 如果返回包含
token字段的JSON响应,说明认证成功,之后就可以用这个token调用salt-api的其他接口了。
排错小技巧
如果遇到认证失败的情况,可以查看salt-master的日志排查问题:
tail -f /var/log/salt/master
日志里会详细记录认证失败的原因(比如用户不存在、密码错误、权限不足等)。
内容的提问来源于stack exchange,提问作者Ian Kitson
相关产品推荐
相关产品推荐

