我有一个用户和组的ldap服务器。
此外,另一台服务器正在使用帐户的第一个。
ldap的用户可以login到第二台服务器。
我可以将组添加到ldap中的用户。
我尝试添加一个组(该组只存在于LDAP)到第二个服务器的系统用户没有任何运气。 可能吗 ?
谢谢 !
我已经search了同一个问题的答案(如你所见)。
我的结论是,您不能将LDAP组分配给仅存在于本地的用户。
这是两个世界: – 用户(及其组)是本地的 – 或者它们不是,即全部存储在目录中。
例如:如果用户已经拥有一个本地主要组,那么会发生什么情况,并且您会尝试向该用户添加一个辅助组? 通常情况下,这将存储在/ etc / group,但在这种情况下,它将不得不修改它可能不能的目录。
所以我想这是一个不行。
从我自己的调查来看,如果你已经build立了所有正常的PAM / nsswitch.confpipe道,你可以这样做,但是只能通过在LDAP服务器上的memberUid属性上直接使用ldapmodify将本地用户添加到LDAP数据库中的组中(见这里 ):
$ ldapmodify -D <admin DN> -h <ldaphost> -W password: [enter password] dn: cn=vipb,ou=groups,dc=example,dc=com changetype: modify add: memberUid memberUid: fred ^D
请注意,空白行是必要的。
接下来,您必须使服务器2上的NCSDcaching无效:
$ nscd --invalidate=group
然后可以通过发出以下命令来检查服务器2上的组成员资格
$ id -nG fred
CAVEAT:使用LDAP作为用户数据库依赖于本标准草案中详述的模式: rfc2307bis-02 。 目前为止有三个版本的标准。 在版本之间调整的东西是member和memberUid属性; 这意味着您的LDAP设置可能无法正常播放。 完全符合bis-02的安装应包含并支持给定组中的memberUid (用于LDAP组的本地login成员,没有dn)和member (对于具有完整dn的LDAP用户)。 他们也应该允许其中一个或两个都是空的,允许空组。 您的里程可能会有所不同 – 您需要检查您的服务器的架构。
像webmin这样的工具可以用来操纵LDAP用户和组以及LDAP数据库; 但是他们可能不会和rfc2307bis-02一起玩。 例如,Webmin的LDAP用户和组模块,可以对应memberUid而不是成员。
事情变得非常模糊的地方是成员的支持。 某些系统(例如early ownCloud)依靠成员支持来确定用户所属的组,而无需两次查询LDAP数据库。 通常, memberof只能用于其中一个属性,然后只能在重新调整LDAPconfiguration之后才能使用。