在脚本中使用时,realm 命令无法正常工作 (CentOS 7)

在脚本中使用时,realm 命令无法正常工作 (CentOS 7)

我尝试使用领域命令通过我的 AD 在 CentOS 7 主机上自动进行身份验证。

当我自己执行以下命令时,它完全有效。

$ yum -y install realmd oddjob oddjob-mkhomedir sssd samba-common
$ realm join -U admin domain.com
$ realm permit -g [email protected]

除此之外,我将以下几行替换为/etc/sssd/sssd.conf并重启sssd服务。

use_fully_qualified_names = False
fallback_homedir = /home/%d/%u

$systemctl restart sssd

完成这些步骤后,我可以使用 Active Directory 的任何允许的用户登录该特定 CentOS 主机

现在的问题是:

如果我在 CentOS 主机上以 root 身份运行以下脚本,似乎一切都正常。

 yum -y install realmd oddjob oddjob-mkhomedir sssd samba-common
 echo "Password" | realm join -U admin domain.com
 realm permit -g [email protected]
 sed -i -e 's/use_fully_qualified_names = True/use_fully_qualified_names = False/g' /etc/sssd/sssd.conf
 sed -i -e 's#fallback_homedir = /home/%u@%d#fallback_homedir = /home/%d/%u#g' /etc/sssd/sssd.conf
 systemctl restart sssd

如果我尝试以允许的 AD 用户身份登录,它会显示没有权限

我检查了/etc/sssd/sssd.conf对于任何可能由 sed 引起的问题,但这似乎很好。还运行命令领域列表好像没有问题。

# realm list
domain.com
type: kerberos
realm-name: DOMAIN.COM
domain-name: domain.com
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common
login-formats: %U
login-policy: allow-permitted-logins
permitted-logins:
permitted-groups: [email protected]

该命令的输出与我手动执行命令后运行它时的输出完全相同。

有人知道如何处理吗?

答案1

我遇到了同样的问题,我注意到这ldap_id_mapping = True是我的解决方案。这是在/etc/sssd/sssd.conf.

答案2

您可能希望包含领域加入命令的详细输出。使用 echo 将密码传输到领域命令的方式是编写脚本的正确方法。这是我使用的:

echo $passwd | realm join --verbose --membership-software=adcli  --user=administrator MYDOMAIN.COM

我还允许各组使用不同的格式。这就是对我有用的方法。

realm permit --groups "mydomain.com\\group-name"

在我的 sssd.conf 中我有

[domain/mydomain.com]
ad_domain = mydomain.com
krb5_realm = MYDOMAIN.COM
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
ad_maximum_machine_account_password_age = 0
ldap_sasl_mech = GSS-SPNEGO
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = simple
simple_allow_groups = mydomain.com\group-name

相关内容