@行者深蓝 你好,想跟你请教个问题:
之前曾看过你的关于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的权限后,
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的账户与权限范围做设置, 这样就可以实现用户的权限管理。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。