小编Swa*_*rtz的帖子

管理对多个 linux 系统的访问

搜索了答案,但在这里什么也没找到...

长话短说:一家非营利组织急需对其基础设施进行现代化改造。首先是找到一种替代方法来管理多个 Linux 主机上的用户帐户。

我们有 12 台服务器(物理和虚拟)和大约 50 个工作站。我们有 500 名这些系统的潜在用户。多年来构建和维护系统的个人已经退休。他编写了自己的脚本来管理这一切。它仍然有效。那里没有抱怨。但是,很多东西是非常手动且容易出错的。代码很乱,更新后经常需要调整。最糟糕的是几乎没有编写文档。只有一些自述文件和随机笔记可能不再相关,也可能不再相关。因此,维护成为一项艰巨的任务。

目前,每个系统上的帐户都通过 /etc/passwd 进行管理。随着帐户添加到“主”服务器上,更新通过 cron 脚本分发以更正系统。一些用户必须有权访问所有系统(如系统管理员帐户),其他用户需要访问共享服务器,而其他用户可能需要访问工作站或仅访问其中的一部分。

是否有工具可以帮助我们管理满足以下要求的帐户?

  • 最好是开源的(即免费,因为预算非常有限)
  • 主流(即维护)
  • 最好有 LDAP 集成,或者可以与 LDAP 或 AD 服务接口以进行用户身份验证(在不久的将来将需要将帐户与其他办公室集成)
  • 用户管理(添加、过期、删除、锁定等)
  • 允许管理每个用户有权访问的系统(或系统组) - 并非所有系统都允许所有用户
  • 支持根据用户登录的系统可能有不同的 homedirs 和 mounts 的用户帐户。例如
    • 登录到“主”服务器的 sysadmin 将main://home/sysadmin/作为 homedir 并具有所有共享安装
    • 登录到员工工作站的 sysadmin 将nas://user/s/sysadmin作为 homedir(与上面不同)和可能有限的挂载集,
    • 登录的客户端会将他/她的 homedir 放在不同的位置,并且没有共享安装。
  • 如果有一个简单的管理界面,那就太棒了。
  • 如果这个工具是跨平台的(Linux / MacOS / *nix),那将是一个奇迹!

我在网上搜索过,所以没有找到合适的。我们乐于接受任何建议。谢谢你。

编辑:这个问题被错误地标记为重复。链接到答案仅讨论在所有系统上具有相同的主目录,而我们需要根据当前登录的系统用户(多个主目录)拥有不同的主目录。此外,访问只需要授予某些机器而不是全部机器。Mods,请理解问题的全部范围,而不是仅仅将其标记为重复点...

ldap user-management home-directory groups user-accounts

16
推荐指数
2
解决办法
6864
查看次数

FreeIPA:防止本地 root 访问用户帐户

所以在问了这个问题之后,我一直在测试 FreeIPA 作为基于这个问题的中央认证源:管理对多个 linux 系统的访问

我遇到的一个问题是,如果用户被授予本地 root 权限,他们又可以以 FreeIPA 目录中的任何用户身份登录。即使该用户无权通过 HBAC 规则访问该特定机器。

示例场景:

  • FreeIPA 客户端机器PC1
  • FreeIPA 中的两个用户:Bob 和 Alice。
  • 爱丽丝通过HBAC规则允许访问PC1。Bob 在 PC1 上有本地根。Bob 可以su成为 PC1 上的 Alice。

我能找到的唯一信息是在 /etc/pam.d/su 中注释掉这一行:

auth            sufficient      pam_rootok.so
Run Code Online (Sandbox Code Playgroud)

如果他尝试以下操作,它现在会向本地 root 询问 Alice 的密码:su alice

但是,如果 Bob 具有 root 访问权限,他可以轻松启用上述 PAM/su 行。FreeIPA 不应该阻止 Alice 的帐户通过直接登录尝试或本地 root su访问 PC1吗?如何防止本地根用户以任何 FreeIPA 用户身份登录?

pam sssd freeipa

6
推荐指数
1
解决办法
2727
查看次数

具有函数调用和变量作为参数的木偶字符串插值

试图构造一个字符串。

我可以:

"Blah blah ${::osfamily} blah blah"

"Blah blah ${$::osfamily} blah blah"

但是用变量作为参数调用函数并进行字符串插值工作的语法是什么?

以下均无效:

"Blah blah ${downcase($::osfamily)} blah blah"

"Blah blah ${downcase($osfamily)} blah blah"

"Blah blah ${downcase(::osfamily)} blah blah"

"Blah blah ${$downcase(osfamily)} blah blah"

"Blah blah ${$downcase($osfamily)} blah blah" 等等。

我得到的是: Error 400 on SERVER: Syntax error at '('; expected ')'

这在 Puppet 语言中是可能的吗?

puppet syntax

1
推荐指数
1
解决办法
5883
查看次数