2011-08-24 4 views
3

하위 프로세스 + ssh를 통해 원격 서버에 연결하여 디렉토리의 파일을 나열하고 해당 디렉토리의 파일 내용을 인쇄하려고합니다. 그렇게하려면 kinit을 파이썬 서브 프로세스로 실행해야합니다. 어떻게하는지에 대한 아이디어가 있습니까? 사용자가 자신의 kerberos ID와 암호를 사용하여 로그온했다고 가정합니다.kinit Python 하위 프로세스를 사용합니다.

감사합니다.

답변

2

kinit을 실행하여 사용자가 Kerberos 티켓을 받도록하려면 비밀번호 (예 : getpass 모듈 사용)를 입력 한 다음 해당 입력을 하위 프로세스로 전달하면됩니다. 이 티켓을 평소와 다름 설정

from subprocess import Popen, PIPE 

kinit = '/usr/bin/kinit' 
kinit_args = [ kinit, '%[email protected]%s' % (userid, realm) ] 
kinit = Popen(kinit_args, stdin=PIPE, stdout=PIPE, stderr=PIPE) 
kinit.stdin.write('%s\n' % password) 
kinit.wait() 

, 아무것도에 의해 선택되어야 단편에서 인 코드 (일반적인 방법으로 Kerberos 티켓을 찾습니다

이이 같이 보입니다 , 그것은 LDAP 연결을 인증하는 것입니다 : https://github.com/jeremyroman/pyceo/blob/master/ceo/ldapi.py

+0

암호를 묻지 않고이 작업을 수행 할 수있는 방법이 있습니까? – sdfasdfasdf

+1

암호를 알고있는 경우 암호를 묻지 않고 사용할 수 있습니다. 내가 아는 한 암호 나 키탭이없는 한 Kerberos 티켓을 얻을 수 없습니다. –

+0

코드에 암호를 포함시키지 않으려면 서비스 주체'kadmin -q "ktadd -k /etc/apache2/http.keytab HTTP/www.example.com"에 대한 키탭 파일을 만들어 사용해야합니다. TGT를 요청하는'kinit -k -t /etc/apache2/http.keytab HTTP/www.example.com ' – Ereli

관련 문제