我在创建非管理员用户时遇到问题。
我已经能够在realm.properties
文件中创建用户并为他们添加所需的角色。
我的问题是,除了我指定的其他角色之外,我创建的每个用户都被赋予了admin角色。
我的用户创建过程如下:
- useradd myuser
- passwd myuser
- 编辑领域。属性添加
myuser:mypassword,user,group2,group3
行
我还添加了一个用户第一的领域。属性,然后再将用户添加到系统中,看看它是否有影响。
我知道我根本不明白Rundeck是如何对用户进行身份验证的,但事实是,除了用户总是拥有管理员角色之外,其他所需的角色之外,一切都工作正常,这让我发疯。
编辑:
添加其他尝试创建用户的描述
- 在
realm.properties
中创建 - 重启运行包(或运行运行包的机器)
operationsuser2
用户登录失败
operationsuser2
用户添加realm.properties
#
# This sets the default user accounts for the Rundeck app
#
admin:admin,user,admin,architect,deploy,build
otheradmin:adminPass,user,admin,architect,deploy,build
operationsuser1:myPass1,user,operations
operationsuser2:myPass2,user,operations
添加我一直在尝试测试的访问策略lol
description: Operations manager project access
context:
application: 'rundeck'
by:
group: operations
for:
project:
- equals:
name: 'myProject'
allow: [read]
---
description: Operations manager project specific rules
context:
project: 'myProject'
by:
group: operations
for:
job:
- equals:
uuid: 096852ba-099e-42c1-9373-11621f17398d
allow: [read, run]
node:
- allow: 'read'
adhoc:
- allow: [read, run]
我想我已经知道为什么所有的用户都是管理员了。在与最初设置Rundeck的同事澄清了一些误解之后,他告诉我他设置了PAM,这让我调查了下面的jaas配置。我们使用的是JettyPamLoginModule。
应寻求机会~ sudo cat/etc/rundak/jaas-loginmodule.conf
RDpropertyfilelogin {
org.rundeck.jaas.jetty.JettyPamLoginModule requisite
debug="true"
service="sshd"
supplementalRoles="admin"
storePass="true";
org.rundeck.jaas.jetty.JettyRolePropertyFileLoginModule required
debug="true"
useFirstPass="true"
file="/etc/rundeck/realm.properties";
};
我现在明白了为什么我创建的每个Unix系统用户都允许我登录Rundeck,同时也是一个管理员。
然而,我仍然不明白为什么我不能用我在realm.properties
中创建的用户登录。
我认为JettyRolePropertyFileLoginModule
将允许我们在realm.properties
文件中创建用户,然后用他们登录到Rundeck。
将ReloadablePropertyFileLoginModule
模块添加到RDpropertyfilelogin
中。
在此之后,JettyRolePropertyFileLoginModule
不是用于身份验证目的。
org. runkk.jaas .jetty. jettyrolepropertyfileloginmodule没有验证并且仅使用属性文件中的授权角色。可与前面的模块组合使用
因此,要使其工作,请遵循以下配置并重新启动Rundeck服务:
jaas-loginmodule.conf
文件:
RDpropertyfilelogin {
org.rundeck.jaas.jetty.JettyPamLoginModule optional
debug="true"
service="sshd"
supplementalRoles="user,readonly"
storePass="true";
org.rundeck.jaas.jetty.ReloadablePropertyFileLoginModule optional
debug="true"
useFirstPass="true"
file="/etc/rundeck/realm.properties"
storePass="true";
org.rundeck.jaas.jetty.JettyRolePropertyFileLoginModule required
debug="true"
useFirstPass="true"
file="/etc/rundeck/realm.properties";
};
realm.properties
文件。
admin:admin,admin
bob: -,admin
bob
用户(PAM)条目它只是为他定义管理员角色。
现在,使用JettyRolePropertyFileLoginModule
模块,您可以在realm.properties
文件上添加任何用户,而无需重新启动运行包,同时保留PAM授权用户。
在Rundeck 4.3.1 (Debian 9)上测试。