Linux에서 서비스 계정의 Active Directory 비밀번호 변경

Linux에서 서비스 계정의 Active Directory 비밀번호 변경

저는 이 기능이 처음이지만 Kerberos를 사용하여 CentOS 7 시스템에서 Active Directory 서비스 계정을 인증한 다음 sqlcmd를 사용하여 원격 데이터베이스에서 쿼리를 실행하려고 합니다.

더 많은 컨텍스트를 제공하기 위해 제가 작업하는 Python 코드의 일부는 다음과 같습니다.

import subprocess

kinit = ['kinit', '[email protected]', '-k', '-t', '/usr/local/var/krb5kdc/serviceaccount.keytab']
kinit_cl = subprocess.Popen(kinit, stdout=subprocess.PIPE)
kinit_output = kinit_cl.stdout.read()

klist = ['klist','-l']
klist_cl = subprocess.Popen(klist, stdout=subprocess.PIPE)
klist_output = klist_cl.stdout.read()
print klist_output

if 'KEYRING:persistent' in klist_output:
    print "Service Account Authenticated"
    #proceed to run sqlcmd queries

내 질문은 내 자격 증명이 저장되는 키탭 관리와 더 관련이 있습니다. 내 비밀번호가 일반 텍스트로 저장되지 않기 때문에 괜찮습니다. 하지만 비밀번호는 30일마다 만료되며,비밀번호명령줄에서 비밀번호를 변경하려면 이전 비밀번호를 묻는 메시지가 나타납니다. 즉, 비밀번호를 어딘가에 저장하고 명시적인 방식으로 전달해야 하는 반면, 비밀번호를 모르고 스크립트가 비밀번호를 관리하도록 놔두는 것이 좋습니다.

Python에서 새로운 강력한 비밀번호를 생성하는 것은 문제가 되지 않습니다. 제 질문은 이전 비밀번호를 묻지 않고 비밀번호를 변경하기 위해 어떤 명령을 사용할 수 있는지입니다. 로부터 명령을 받다kadmin.local비밀번호가 변경되었다는 메시지가 표시되지만 허용된 비밀번호는 여전히 이전 비밀번호입니다.카민서비스 계정을 관리자로 로컬 파일에 추가해도 다음 오류가 발생합니다.

[root@osboxes krb5kdc]# kadmin.local -q "addprinc serviceaccount/admin"
Authenticating as principal serviceaccount/[email protected] with password.
WARNING: no policy specified for serviceaccount/[email protected]; 
defaulting to no policy
Enter password for principal "serviceaccount/[email protected]": 
Re-enter password for principal "serviceaccount/[email protected]": 
Principal "serviceaccount/[email protected]" created.
[root@osboxes krb5kdc]# kinit serviceaccount/admin
kinit: Client 'serviceaccount/[email protected]' not found in Kerberos database while getting initial credentials
[root@osboxes krb5kdc]# kadmin serviceaccount
kadmin: Client 'serviceaccount/[email protected]' not found in Kerberos database while initializing kadmin interface

그냥 합격해야 하나요?카민? 이 스크립트를 또 어떻게 작성하겠습니까?

관련 정보