You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:31:21