RunDeck / ACL / Custom /非管理员组

时间:2016-10-29 18:37:13

标签: acl rundeck

无法获得属于群组的用户"用户"有权访问(至少读取)项目。我已经阅读并尝试了我在互联网上找到的几个例子,似乎都没有用。

我现在需要的是:允许任何属于群组"用户"阅读名为MYPROJECT的项目。我有这个,保存在/ etc / rundeck下名为user.aclpolicy的文件中。我等了60多秒。我也试过重启RunDeck。没有运气。

我一直在:

  

您无权访问项目。   联系您的管理员。 (用户角色:raka,用户)

description: application access to a project
  application: 'rundeck'
for:
  resource:
    - equals:
        kind: project
      deny: [create] # deny create of projects
    - equals:
        kind: system
      allow: [read] # allow read of system info
    - equals:
        kind: user
      deny: [admin] # allow modify user profiles
  project:
    - equals:
        name: 'MYPROJECT'
      allow: [read] # allow access
      deny: [import,export,configure,delete] # deny admin actions
  storage:
    - deny: [read,create,update,delete] # allow access for /keys/* storage content
by:
  group: user

以上YAML有什么问题?我还检查了/ var / lib / rundeck / exp / webapp / WEB-INF下的web.xml,以确保role-name" user"在那里注册。

我的realm.properties包含以下行:

raka:greentooth60,user

我也试过这个。基本上复制了#34; admin"组。为此我还尝试将它直接放在admin.aclpolicy而不是单独的文件中。仍然没有运气。

description: User, all access.
context:
  project: '.*' # all projects
for:
  resource:
    - allow: '*' # allow read/create all kinds
  adhoc:
    - allow: '*' # allow read/running/killing adhoc jobs
  job:
    - allow: '*' # allow read/write/delete/run/kill of all jobs
  node:
    - allow: '*' # allow read/run for all nodes
by:
  group: user

RunDeck版本:Rundeck 2.6.9-1 cafe bonbon indigo tower 2016-08-03

这是RunDeck(.deb)的debian安装。我可以查看哪些日志文件来分析这样的情况?

谢谢, 拉嘎

2 个答案:

答案 0 :(得分:6)

RunDeck ACL可能违反直觉,需要一些时间来习惯。为了可见性,特别是在开始编写RunDeck ACL策略时,最好只设置允许用户执行的操作,而不是拒绝访问。默认情况下,不允许任何操作,因此您只需添加allow语句即可授予用户访问资源的权限。

RunDeck需要"应用程序"上下文,"项目"上下文。您正在应用程序上下文中指定对项目的read访问权限,并在项目上下文中按名称(在您的情况下为.*)访问所有作业,但您还需要授予{{{} { 1}}资源类型read,以便作业可见。请参阅下面的示例。

有用的日志

为了解决RunDeck问题,我发现以下日志很有用:

job

测试ACL策略

如果要针对ACL文件测试特定用户操作,可以使用与RunDeck一起安装的工具tail -f /var/log/rundeck/{rundeck.log,service.log} 。例如,要测试组rd-acl的成员是否可以阅读项目user中的作业restart some server,您可以执行以下操作:

MYPROJECT

有关详细信息,请参阅rd-acl manual

只读ACL示例

以下是一个示例(在rd-acl test -p 'MYPROJECT' -g user -c project -j 'restart some server' -a read 上测试),该示例应该为群组中的任何人提供"用户"访问读取RunDeck服务器上的所有内容:

Rundeck 2.6.9-1

答案 1 :(得分:3)

权限是您在处理“您无权访问项目”时会碰到的另一件事。

如果出于某种原因使用根用户使用简单的副本创建了aclpolicy文件,则需要将所有者和组更改为“ rundeck”(当然,除非您更改了用户rundeck在其下运行)。 / p>

今天让我放松了30分钟,希望这对某人有帮助。