标签: ldap

ldap_bind:无效凭据 (49)

我正在尝试设置 openLdap 服务器,在按照说明进行操作后,我卡在无法添加任何数据的地方。

我得到的错误是

ldap_bind: Invalid credentials (49)
Run Code Online (Sandbox Code Playgroud)

请帮助我解决这个问题。阅读调试数据和slapd.conf文件时要耐心,因为它们很长。

我的系统是: Red Hat Enterprise Linux 6.0
Installed openLdap using yum openldap*.

这是我的slapd.conf文件:

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#

include     /etc/openldap/schema/corba.schema
include     /etc/openldap/schema/core.schema
include     /etc/openldap/schema/cosine.schema
include     /etc/openldap/schema/duaconf.schema
include     /etc/openldap/schema/dyngroup.schema
include     /etc/openldap/schema/inetorgperson.schema
include     /etc/openldap/schema/java.schema
include     /etc/openldap/schema/misc.schema
include     /etc/openldap/schema/nis.schema
include     /etc/openldap/schema/openldap.schema
include     /etc/openldap/schema/ppolicy.schema
include     /etc/openldap/schema/collective.schema

# Allow LDAPv2 client connections.  This is NOT the default.
allow bind_v2 …
Run Code Online (Sandbox Code Playgroud)

linux ldap rhel configuration

5
推荐指数
1
解决办法
2万
查看次数

是否可以将 linux salted sha512 密码哈希转换为 LDAP 格式?

我们有一个存储密码和其他用户数据的 LDAP 服务器。
尽管服务器不用于客户端计算机的身份验证,但仅用于客户端应用程序的身份验证。
所以用户在他们的客户端本地更改他们的密码。
只要我们使用 crypt,我就可以在 LDAP 中将 linux 哈希存储为 {CRYPT}$hash 并且它运行良好。
现在密码存储为加盐的 sha512 哈希值
,/etc/shadow 中的密码格式如下:

printf( "$6$%s$%s", $salt, $hash )  
Run Code Online (Sandbox Code Playgroud)

$salt 似乎只是一个 ASCII 字符串,
我认为 $hash 是 $plainPW 和 $salt 串联的 sha512 摘要的 base64 编码结果,但我不确定。

LDAP 存储密码哈希是这样的:

printf( "{SSHA512}%s", $_96byteString )  
Run Code Online (Sandbox Code Playgroud)

其中 $_96byteString 是 $saltedPWhash 和 $salt 的 512 位连接的 base64 编码结果

我试图对 $hash 进行 base64_decode,附加 $salt,base64_encode 结果并将其存储为上述 LDAP 格式的 $_96byteString。
唉 LDAP 无法通过此验证,一个简单的 ldapbind 就失败了。

有人知道如何转换 linux sha512 哈希值以便 LDAP 服务器接受它为有效吗?

我发现 linux crypt 使用与标准 mime …

password ldap character-encoding base64

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

如何创建 UNIX 组的层次结构,如下所示?

我需要创建 UNIX 组的层次结构。像下面这样:

A
|\
| \
B  c
|\
D e
|\
f g
Run Code Online (Sandbox Code Playgroud)

...其中 A、B 和 D 是 UNIX 组,而 c、e、f 和 g 是作为这些特定组成员的 UNIX 帐户。我用谷歌搜索了很多,但似乎这是不可能的。

目前,我们有以下几点:

  1. A 组有成员 c。
  2. B 组有成员 e。
  3. D组有成员f,g。

更新:

@John 的帖子让我意识到我需要重新构建我的需求以消除歧义。

我需要的是:

  1. 只允许组 B 的成员访问目录(因此 B 是该文件夹的组所有者)。由于组 D 是 B 的子组,因此 D 的成员将是组 B 的成员并且也可以访问该目录。
  2. 但组 B 的成员需要与组 A 的成员具有相同的权限。(因此,如果组 A 是目录组所有者,则组 B 自动成为目录组所有者)。

    顺便说一下,这是一个现实世界的问题,我可以完全控制 B 组及其成员;对其他团体及其成员的控制有限或无法控制。因此,我无法创建新组并向 A 组或 D 组中的成员授予成员资格。

linux ldap acl permissions

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

解决 LDAP 客户端上重复用户名的 LDAP 机制是什么?

在 LDAP 客户端上,有两个用户具有相同的用户名,例如“abc”。一个是 UID 1000 的本地用户,另一个是 UID 1001 的 LDAP 用户。如果我运行getent passwd 1000,返回的输出是

abc:x:1000:1000:本地用户:/home/abc:/bin/bash

如果我运行getent passwd 1001,返回的输出是

abc:x:1001:100:LDAP 用户:/home/abc:/bin/bash

主目录存储在NFS服务器中,并且我的主目录中的文件都是由LDAP用户创建的,因此主文件的UID都是1001。在passwd、group和shadow字段中,“files”位于“ldap”之前/etc/nsswitch。根据我的理解,这个顺序意味着 LDAP 客户端首先检查本地数据库,因此使用的是 abc 的本地用户。结果,当我运行 command 时ls -al ~,由于主文件的所有者 UID 是 1001,由于 UID 不匹配而无法映射到本地用户“abc”,因此上述 ls 命令输出的所有者应该是数字 1001 (这是未配置LDAP客户端的情况)。然而,实际输出是正确的“abc”。所以,我不明白为什么会发生这种情况。当我明确指定“files”位于“ldap”之前时,LDAP 机制如何设法解决 LDAP 客户端上的重复用户名?

LDAP 计算机正在运行 Ubuntu 22.04.3 LTS 服务器。

users ldap ubuntu

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

Open LDAP 是否适用于 Linux 的 passwd 命令?

我已经通过 YaST GUI 在 OpenSuSE 11.2 中实现了一个 Open LDAP 服务器。我通过 LDAP 从本地机器和其他机器成功登录。我可以通过以下方式更改 LDAP 用户密码

passwd

在命令行上。但是,我无法通过命令行执行任何其他操作,例如 passwd -e username.
我收到以下错误

验证失败。LDAP 信息更新失败:操作错误 更改密码到期信息时出错。

这同样适用于任何其他有关密码到期或通过 锁定帐户的参数-l。这仅仅是 LDAP 服务器的限制,还是我的配置不正确?

password ldap opensuse

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

用于 LDAP 查询的基于文本的工具

我需要一种通过基于文本的界面进行 LDAP 查询的方法。我在自己的机器上使用 jXplorer,但那是一个图形客户端。顺便说一句,我正在运行 Ubuntu 服务器 14.04。

背景:

我环境中的服务器无法为其正在运行的系统同步用户数据库。主机名是正确的,它解析为正确的 IP,我可以进行连接测试,但是当我尝试执行用户查询时,它失败并显示错误“没有到主机的路由”。所以我需要一种方法来测试这个查询命令行。

ldap ubuntu console

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

getent 组正常工作,但 sshd_config allowgroups 未检索到适当的组

我正在尝试在 Debian Jessie 上使用 OpenLdap 自动化设置 Kerberos MIT 身份验证。

身份验证部分运行良好,因为我可以使用我的 kerberos 帐户登录到 SSH。

我什至可以使用 pam_mkhomedir.so 创建用户主目录

但是,我不能使用 Ldap posixGroup 来允许访问我的 SSH 服务器:

这是输出 getent group

getent group | grep tupac
adminsLinux:*:3000:uid=tupac,ou=people,dc=maytacapac,dc=inc
Run Code Online (Sandbox Code Playgroud)

这是 sshd_config 的摘录:

AllowGroups adminsLinux
Run Code Online (Sandbox Code Playgroud)

以下是日志文件:

sshd[3305]: User tupac from a.b.c.d not allowed because not in any group
sshd[3305]: input_userauth_request: invalid user tupac [preauth]
sshd[3305]: Connection closed by a.b.c.d [preauth]
Run Code Online (Sandbox Code Playgroud)

这是id tupac输出

uid=20003(tupac) gid=20003 groups=20003
Run Code Online (Sandbox Code Playgroud)

tupac 用户不属于任何 Unix 组,但我想允许基于 OpenLdap posixGroup 的访问。我认为 /etc/nsswitch.conf 配置和 getent 组解析足以根据 posixGroups …

ldap kerberos accounts openldap

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

ldapdelete,想要删除人员 OU 的所有 UID,但保留 OU?

使用这个 cli:

$ ldapdelete -ZZ -W -D "cn=Manager,dc=site,dc=fake" -r  ou=People,dc=site,dc=fake
Run Code Online (Sandbox Code Playgroud)

我删除了 People 的所有 UID,但问题是它也删除了 People OU。我知道重新创建空 OU 很容易,但我想删除 People OU 的所有 UID,但保留实际的 People OU?

ldap

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

OpenLDAP 与 Active Directory 身份验证机制

我能够使用objectClass的userPrincipalName属性登录到 Active Directory user;(例如foo@mydomain.com

我还设置了一个OpenLDAP服务器实例,我只能使用dn,例如

"cn=somecn,cn=anothercn,ou=someou,dc=mydomain,dc=com"

如何OpenLDAP使用另一个字段进行身份验证,例如,例如的mail属性inetOrgPerson

更重要的是,即使这样的事情可能的,任何人如何确保该领域的独特性?(我假设 AD 在该userPrincipalName领域提供了一个功能)

ldap openldap

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

允许用户名输入 sddm (LDAP/Kerberos)

最重要的问题是:

  • 如何在 Debian 中启用 SDDM 接受用户名输入?

潜在/隐含的问题:

  • SDDM如何识别用户?
  • Debian 的替代品是什么/etc/sddm.conf

也就是说,在使用 Debian Jessie 的 LDAP/Kereberos 客户端上,有时 SDDM 登录屏幕会提供所有用于登录的 LDAP 用户的列表 - 有时则不会。

即,如何更改 SDDM 的登录屏幕以允许输入用户名并使用 LDAP/Kereberos 进行验证?

ldap debian kerberos sddm

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

Samba 未在 Ubuntu Server 16.10 上启动

Samba 在 ubuntu 服务器 14.04 上运行良好。升级到 16.10 后,它不再启动。我还尝试在新的 16.10 虚拟机上安装 samba,但它不起作用。

这里的服务错误信息:

root@srvvm:~# systemctl restart smbd
Job for smbd.service failed because the control process exited with error code.
See "systemctl status smbd.service" and "journalctl -xe" for details.
root@srvvm:~# systemctl status smbd
? smbd.service - Samba SMB Daemon
   Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2017-01-30 17:27:42 CET; 2s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
  Process: 3075 ExecStart=/usr/sbin/smbd $SMBDOPTIONS (code=exited, status=1/FAILURE)
 Main PID: 3075 (code=exited, status=1/FAILURE) …
Run Code Online (Sandbox Code Playgroud)

ldap ubuntu samba kerberos smb

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

在 RHEL 6 中进行 OpenLDAP 配置更改

我一直在 RHEL 6 上配置 OpenLDAP,似乎您已经运行以下命令来重建配置目录。我没问题,但我的问题是,假设我想更改服务器密码,每次更改配置时都必须完成整个过程吗?有没有办法在使用 RHEL6 方法构建后更改 slapd 配置?

以下是我在网上找到的建议。

此示例假定要从旧 slapd 配置转换的文件位于 /etc/openldap/slapd.conf 并且 OpenLDAP 配置的新目录位于 /etc/openldap/slapd.d/。删除新的 /etc/openldap/slapd.d/ 目录的内容:

rm -rf /etc/openldap/slapd.d/*

运行slaptest检查配置文件的有效性并指定新的配置目录:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

配置新目录的权限:chown -R ldap:ldap /etc/openldap/slapd.d

chmod -R 000 /etc/openldap/slapd.d

chmod -R u+rwX /etc/openldap/slapd.d

澄清一下:我正在寻求有关如何使用较新版本的 openldap 编辑 slapd 配置的帮助,其中配置保存在架构中而不是原始slapd.conf.

ldap rhel

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

Ubuntu 不会将 /home/testuser 翻译为 ~

在 Ubuntu 22.04.3 LTS 中,如果我使用 LDAP 用户的凭据登录testuser,在几个不同的程序中,目录的路径$HOME不会被替换~(相反,本地用户会发生这种情况)。

举几个例子:

  1. 在 中bash, 的值为PS1默认值:

    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
    
    Run Code Online (Sandbox Code Playgroud)

但它显示为

testuser@myhost:/home/testuser$
Run Code Online (Sandbox Code Playgroud)

代替

testuser@myhost:~$
Run Code Online (Sandbox Code Playgroud)
  1. 在 中neomutt,在列出邮件目录的左栏中,显示其完整路径

    /home/testuser/Mail/mailbox1
    
    Run Code Online (Sandbox Code Playgroud)

代替

   ~/Mail/mailbox1
Run Code Online (Sandbox Code Playgroud)

然而,在bash,

$ echo $HOME
/home/testuser
Run Code Online (Sandbox Code Playgroud)

所以这个env变量HOME在某种程度上是被认可的。

这可能是什么问题?


更新

我用来sssd管理 LDAP 用户的身份验证:

$ grep passwd /etc/nsswitch.conf 
passwd:         files systemd sss
Run Code Online (Sandbox Code Playgroud)

LDAP 用户和本地用户的条目看起来非常相似:

$ getent passwd testuser
testuser:*:<uid>:<gid>:Test User:/home/testuser/:/usr/bin/bash

$ getent passwd localuser
localuser:x:<uid>:<gid>:,,,:/home/localuser:/bin/bash
Run Code Online (Sandbox Code Playgroud)

$ echo $HOME
/home/testuser/
Run Code Online (Sandbox Code Playgroud)

与 …

bash ldap ubuntu home tilde

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