@行者深蓝 你好,想跟你请教个问题:
之前曾看过你的关于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
问题已解决
管理方式:使用普通用户分发控制,其中通过pam模块的用户来限制权限范围。
之前曾新建了一个salt普通用户,根据官网指引,确认了相关目录为755的权限后,
以及对salt普通用户开放了/var/log/salt目录和 /var/log/salt/master 日志文件的可写权限, 同时需要在master配置文件/etc/salt/master 中 ,定义:配置client_acl的意义,在于指定了使用哪个非root的普通用户可以执行的权限范围。即如上,允许salt用户,可以使用 test.ping
但在salt执行命令后,始终卡住无任何回应。考虑还是权限问题,因为通过sudo是正常的。后面将salt用户放到root组里面,
# usermod -G root salt
并且同时保留root组对salt日志目录与文件的可写权限。这样调整后,普通用户就可以正常执行salt命令了。执行未指定的模块是不允许的
[salt@salt ~]$ salt 'zk1' cmd.run 'date'
Failed to authenticate! This is most likely because this user is not permitted to execute commands, but there is a small possibility that a disk error occurred (check disk/inode usage).
为了管理权限划分,则通过pam来实现区分不同用户的权限范围。在/etc/salt/master配置文件中添加pam用户及权限信息
系统管理员可以登录到统一的salt普通账户下,在执行分发操作时,验证的是属于系统管理员自己的LDAP账户与密码,并且在salt上也将系统管理员的LDAP的账户与权限范围做设置,这样就可以实现用户的权限管理。