スクリプトで使用すると、realmコマンドが正しく機能しません(CentOS 7)

スクリプトで使用すると、realmコマンドが正しく機能しません(CentOS 7)

CentOS 7ホストでAD経由で認証を自動化するには、ゾーンコマンドを使用しようとしています。

次のコマンドを直接実行すると、完璧に動作します。

$ 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.confsedによって引き起こされる可能性があるすべての問題については問題ありません。また、コマンドを実行します。ドメインリスト問題ないようです。

# 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を使用してパスワードをrealmコマンドに転送する方法は、スクリプトを書く正しい方法です。これが私が使用するものです:

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

関連情報