有什么方法可以将 LDAP 的基于 DN 的组之一用于 linux 组,而不是使用基于 uid 的 posixGroup 对象类?
更广泛地说,有什么方法可以避免使用一组用于支持 linux 帐户的组和一组其他所有使用的平行组?
我有一个基本系统,上面有几个(目前是两个)VM,都运行 Ubuntu Server。当我启动一个新的系统时,我必须不断在每个系统上添加我的用户帐户,并授予它 sudo 访问权限等,并且存在密码/私钥未自动同步等问题。
有没有一种简单的方法可以为所有这些用户帐户提供(一个或两个)共享登录?他们需要是具有主目录等的真实帐户。它们也已经存在,因此我需要将它们从普通用户帐户迁移到新解决方案。
LDAP 似乎比我真正需要的稍微(很多)复杂,而且我很难确定 NIS 是否是我想要的。我应该考虑哪些解决方案,以及如何开始?
给定用户或组的 SID,如何找到属于它的 LDAP 对象?
LDAP 服务器是 Active Directory (Windows Server 2008)。
LDAP 查询字符串会很有用。
我根本无法让这个(到 openldap 的 TLS 连接)工作,希望得到一些帮助。
我在 ubuntu 10.04 LTS 上有一个可用的 openldap 服务器,它被配置为使用 cn=config 并且我能找到的大部分 TLS 信息似乎都使用旧的 slapd.conf 文件:-(
我一直在很大程度上遵循这里的说明https://help.ubuntu.com/10.04/serverguide/C/openldap-server.html加上我在这里和其他地方读过的东西 - 这当然可能是问题的一部分我还没有完全理解这一切!
我创建了一个 ssl.ldif 文件如下;
dn:cn=config
add: olcTLSCipherSuite
olcTLSCipherSuite: TLSV1+RSA:!NULL
add: olcTLSCRLCheck
olcTLSCRLCheck: none
add: olcTLSVerifyClient
olcTLSVerifyClient: never
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/ldap_cacert.pem
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/my.domain.com_slapd_cert.pem
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/my.domain.com_slapd_key.pem
Run Code Online (Sandbox Code Playgroud)
我使用以下命令行导入它
ldapmodify -x -D cn=admin,dc=mydomain,dc=com -W -f ssl.ldif
Run Code Online (Sandbox Code Playgroud)
我编辑了 /etc/default/slapd 使其具有以下服务行;
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
Run Code Online (Sandbox Code Playgroud)
每次我进行更改时,我都会重新启动 slapd /etc/init.d/slapd restart
以下用于测试非 TLS 连接的命令行工作正常;
ldapsearch -d 9 -D cn=admin,dc=mydomain,dc=com -w mypassword \ …Run Code Online (Sandbox Code Playgroud) 我们有一个有效的 LDAP 设置。但是,由于本地文件和 LDAP 中都存在一些用户名和组名,我们最近遇到了一个问题。具体来说,apache 用户和组都存在于:
/etc/passwd 和 /etc/group在最近的 yum 更新(CentOS 5)之后,进程的组 ID 似乎已从/etc/groupLDAP 中的值更改为值(而用户 ID 仍然是 中的 ID /etc/passwd)。由于 httpd 需要的一些文件由用户 root 拥有,组 apache (from /etc/group) 但不是全局可读的,这导致了问题。
请注意,我们已经nss_initgroups_ignoreusers apache,...在/etc/ldap.conf和中都有/etc/openldap/ldap.conf。此外,在/etc/nsswitch.conf我们有
passwd: files ldap
group: files ldap
shadow: files ldap
Run Code Online (Sandbox Code Playgroud)
和其余的正常点点滴滴。
因此,如果 LDAP 和本地文件中都存在名称,是否有办法确保本地文件中的 ID 优先于 LDAP 中的 ID?
我一直在 Linux 上使用 Luma 来创建和管理 LDAP 用户帐户。我现在有一个 macbook pro,并且正在寻找一个等效的 Macosx 程序 - 在创建新的 inetOrgPerson 时,它会自动正确地生成新的 uidNumber 和 gidNumber 属性。
有任何想法吗?
谢谢!
我们有 15 台 Debian 服务器,而且还在不断增加。
什么是集中用户管理的简单、轻量级的方法?用例将在所有服务器上添加用户,调整特定服务器上的用户访问权限,从所有服务器中删除用户。
LDAP 是一个选项,但似乎对我的需求来说太满了。我更喜欢 useradd/groupadd 的简单性,只是分布在多台机器上。Web 界面会很好但不是必需的。Git 界面可能真的很酷。
我正在尝试为某些开发人员设置测试 LDAP 服务器,但遇到了一些麻烦。
service slapd start
Run Code Online (Sandbox Code Playgroud)
错误所以我跑
/usr/sbin/slapd -d 1
Run Code Online (Sandbox Code Playgroud)
这最后给了我以下错误:
无法打开 pid 文件“/var/run/ldap/slapd.pid”:13(权限被拒绝)
slapd destroy:释放系统资源。
巴掌停了下来。
/var/run/ldap 的权限如下:
root@pec:/var/run/ldap# ls -ld
drwxr-xr-x 2 openldap openldap 60 2012-07-04 20:45
Run Code Online (Sandbox Code Playgroud)
所以我不明白为什么仍然拒绝许可。运行 slapd 时,Syslog 提供以下信息:
Jul 4 21:00:27 pec slapd[13758]: @(#) $OpenLDAP: slapd 2.4.21 (Dec 19 2011 15:40:04) $#012#011buildd@allspice:/build/buildd/openldap-2.4.21/debian/build/servers/slapd
Jul 4 21:00:27 pec kernel: [8147247.203100] type=1503 audit(1341428427.953:64): operation="truncate" pid=13758 parent=20433 profile="/usr/sbin/slapd" requested_mask="::w" denied_mask="::w" fsuid=0 ouid=119 name="/var/run/ldap/slapd.pid"
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我正确的方向吗?
有没有办法在 LDIF 文件中执行以下操作之一?
或者:
当我在 CentOS 6.4 上的 bash 提示符下执行此操作时
ldapsearch -LLL -H ldap://adserver.example.com -x -D someuser@example.com -w somepass -b 'OU=Users,DC=example,DC=com' '(&(objectClass=person)(sAMAccountName=testuser))'
Run Code Online (Sandbox Code Playgroud)
我得到
dn: CN=TestUser Surname,OU=Area,OU=Users,DC=example,DC=com
...
objectClass: person
...
cn: TestUser Surname
sn: Surname
...
distinguishedName: CN=TestUser Surname,OU=Area,OU=Users,DC=example,DC=com
...
memberOf: CN=Group1,OU=Area,OU=Users,DC=example,DC=com
memberOf: CN=Gropu2,OU=Users,DC=example,DC=com
...
sAMAccountName: testuser
Run Code Online (Sandbox Code Playgroud)
我只想在 testuser 属于名为 X 的组时得到响应,而不管组 X 在 AD 层次结构中的位置。例如:我想要名为 testuser 的用户的数据,该用户是名为 Group1 的组的成员。
我尝试将过滤器更改为:
无济于事。
从上面的输出可以看出, testuser 属于组
当我使用过滤器 '(&(objectClass=person)(sAMAccountName=testuser)(memberOf=CN=Group1,OU=Area,OU=Users,DC=example,DC=com))' 它可以工作,但我需要一个仅使用组名查询(不使用完整的“路径”)。
有什么办法吗?
我尝试这样做是因为我需要使用 Active Directory 定义的组作为 squid(linux 代理)ACL。为此,我需要定义一个外部 ACL 类型,例如
external_acl_type ADGroup %LOGIN …Run Code Online (Sandbox Code Playgroud)