开发者社区> 问答> 正文

saltstack的权限管理?报错

@行者深蓝 你好,想跟你请教个问题:

之前曾看过你的关于saltstack权限管理的文章,有些问题想问一下

看到在你文章中,可以使用普通用户 在salt上面执行命令,但我测试时,使用普通用户执行时,就提示master的log日志权限问题,即使改了log的权限,在普通用户执行时就卡住,没有任何信息输出。

这种情况只能使用sudo去执行,但普通用户使用sudo执行后,本来想通过pam去控制权限这块,但普通用户在通过sudo,其实普通用户可以不需要带 -a pam 参数 就可以直接执行,并不会报错。

当前情况想控制权限这块就比较麻烦的。不知道你之前是否遇过类似的问题。

当前salt是以root运行,rpm包安装的,系统为rhel6.5

[root@salt ~]# rpm -qa|grep salt
salt-2014.7.0-3.el6.noarch
salt-master-2014.7.0-3.el6.noarch


展开
收起
爱吃鱼的程序员 2020-06-14 18:55:51 816 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    问题已解决

    管理方式: 使用普通用户分发控制,其中通过pam模块的用户来限制权限范围。

       之前曾新建了一个salt普通用户,根据官网指引,确认了相关目录为755的权限后,

    chmod755/var/cache/salt/var/cache/salt/master/var/cache/salt/master/jobs/var/run/salt/var/run/salt/master
       以及对salt普通用户开放了/var/log/salt目录和/var/log/salt/master日志文件的可写权限,
    [root@salt~]#ll-d/var/log/salt/drwxrwxr-x2rootroot4096Dec1506:35/var/log/salt/[root@salt~]#ll-d/var/log/salt/master -rw-rw-r--1rootroot86700Dec1602:40/var/log/salt/master
      同时需要在master配置文件/etc/salt/master 中 ,定义:

    client_acl: salt:  -test.ping

     配置client_acl的意义,在于指定了使用哪个非root的普通用户可以执行的权限范围。即如上,允许salt用户,可以使用test.ping 

       但在salt执行命令后,始终卡住无任何回应。考虑还是权限问题,因为通过sudo是正常的。后面将salt用户放到root组里面,

    #usermod-Grootsalt
       并且同时保留root组对salt日志目录与文件的可写权限。这样调整后,普通用户就可以正常执行salt命令了。

    [salt@salt~]$salt'zk1'test.pingzk1:True

      执行未指定的模块是不允许的 

    [salt@salt~]$salt'zk1'cmd.run'date' 
    Failedtoauthenticate! Thisismostlikelybecausethisuserisnotpermittedtoexecutecommands,butthereisasmallpossibilitythatadiskerroroccurred(checkdisk/inodeusage).
    为了管理权限划分,则通过pam来实现区分不同用户的权限范围。

    在/etc/salt/master配置文件中添加pam用户及权限信息

    external_auth: pam:  liuyi:   -cmd.*
      通过external_auth参数指定了使用pam模块,该系统已在系统级别加入了OpenLDAP,liuyi为Openldap中的账户,当然这里也可以使用系统本地用户,同时也指定了仅允许使用cmd模块。

    [salt@salt~]$salt-apam'zk1'cmd.run'date'username:liuyipassword: zk1:  TueDec1602:39:53CST2014
     通过salt命令执行时,指定-apam参数来认证授权账户,将会提示输入用户名与密码。验证后,cmd模块即可执行。

    [salt@salt~]$salt-apam'zk1'test.pingusername:liuyipassword: Failedtoauthenticate! Thisismostlikelybecausethisuserisnotpermittedtoexecutecommands,butthereisasmallpossibilitythatadiskerroroccurred(checkdisk/inodeusage).
      若通过-apam参数,想执行test.ping的指令,是不允许的。因为在配置文件中,授权给liuyi账户的权限只有cmd模块。

        系统管理员可以登录到统一的salt普通账户下,在执行分发操作时,验证的是属于系统管理员自己的LDAP账户与密码,并且在salt上也将系统管理员的LDAP的账户与权限范围做设置, 这样就可以实现用户的权限管理。







    他们的权限管理确实存在很多问题,后来我们也放弃使用他们的权限管理机制了!我们这边想着日后部署维护管理上简洁些,才想着去使用salt的,那你们后来使用什么方式来管理权限这块?现在我们管理的方式是,服务端不放开权限,只开放仓库编辑权限,客戶端同步配置问题已解决,谢谢~
    2020-06-14 18:56:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ANSIBLE在生产环境中的实践 立即下载
MongoDB网络安全和权限管理 立即下载
云Mongodb网络安全和权限管理 立即下载