我在没有特权的用户下运行盐。我们的想法是创建一些可以在不同的unix用户下执行的状态,但不向任何执行该状态的人授予root权限。所以问题是,当通过runas或在cmd.run中指定用户时切换用户时,是否有可能以某种方式告诉salt要求输入密码。实际上,我想实现类似的目标:
salt '*' cmd.run runas=myuser ask_for_pass=true 'whoami'
test1:
> enter pass for myuser:
'myuser'
or in the same in a form of state:
whoami:
cmd.run:
- user = myuser
- ask_for_pass = true
或者更接近我实际想要实现的另一个例子 - 为不同的用户安装jboss(salt-minions和master以用户“salt”的形式运行):
$ salt 'host1' state.jboss runas=jboss_user ask_for_pass=true
答案 0 :(得分:-1)
Salt并不完全符合你想要做的事情。
您最好的选择可能是使用client_acl
或external_auth
主配置选项。
这两种方法都允许您为系统用户或ldap用户提供运行特定命令的权限。
用于授权系统用户的 client_acl
个文档:https://docs.saltstack.com/en/latest/ref/clientacl.html
external_auth
个文档:https://docs.saltstack.com/en/latest/topics/eauth/index.html
例如,如果您设置了LDAP external_auth,则可能要求您的用户在命令行上执行以下操作:
salt -a ldap '*' state.jboss
Salt会提示输入用户和密码。