스크립트에서 사용할 때 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 호스트에서 루트로 다음 스크립트를 실행하면 모든 것이 제대로 작동하는 것 같습니다.

 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

관련 정보