keytab 항목을 즉시 나열하도록 ktutil을 자동화하는 방법은 무엇입니까?

keytab 항목을 즉시 나열하도록 ktutil을 자동화하는 방법은 무엇입니까?

나는 Linux에서 MIT를 많이 사용하고 ktutil명령 단축키와 파일 이름 완성이 도움이 될 수 있음에도 불구하고 다음 순서를 사용하는 데 지쳤습니다.

ktutil
rkt my.keytab
l

쉘에서 "한 줄"로 동일한 결과를 얻을 수 있는 방법이 없나요? 별칭, 함수 또는 다른 도구를 사용해야 합니까?

답변1

나는 항상 klistkeytab 파일의 내용을 나열하기 위해 ktutil.

예시 #1 - klist

$ klist -kt /etc/somedir/conf/some.keytab
Keytab name: FILE:/etc/somedir/conf/some.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
   5 08/25/15 11:18:35 app/[email protected]
   5 08/25/15 11:18:35 app/[email protected]
   5 08/25/15 11:18:35 app/[email protected]
   7 08/25/15 11:18:35 app/[email protected]
...

예 #2 - 프로세스 대체

ktutilSTDIN을 사용하여 다음과 같이 리디렉션 할 수도 있습니다 .

$ ktutil < <(echo -e "rkt /etc/somedir/conf/some.keytab\nlist")
ktutil:  rkt /etc/somedir/conf/some.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    5 app/[email protected]
   2    5 app/[email protected]
   3    5 app/[email protected]
   4    7 app/[email protected]

답변2

나는 쉘 함수를 사용하는 방법을 찾았고, ktutil그것이 stdin의 명령을 받아들일지도 모른다고 추측했습니다:

rkt() { echo -e "read_kt $1\nlist\nquit" | ktutil | grep -v "^ktutil:"; }

그리고 전화해rkt my.keytab

파일 이름에 공백이 포함되어 있지 않으면 작동합니다.

답변3

이는 2개의 키탭을 병합하고 stdin을 사용하는 쉘 스크립트에서 사용하는 데 도움이 될 수 있습니다.

ktutil < <(echo -e "rkt/var/tmp/keytab/merge/krb5.keytab.server.keytab1\n
rkt /var/tmp/keytab/merge/krb5.keytab.server.keytab1\n
wkt /var/tmp/keytab/merge/krb5.keytab\n
quit")
ktutil:  rkt /var/tmp/keytab/merge/krb5.keytab.server.keytab1
ktutil:  rkt /var/tmp/keytab/merge/krb5.keytab.server.keytab1
ktutil:  wkt /var/tmp/keytab/merge/krb5.keytab
ktutil:  quit

답변4

다른 답변은 일련의 ktutil 명령을 실행한 다음 종료하는 방법을 제공합니다.

일련의 명령을 실행한 다음 전체 라인 편집 기능을 갖춘 대화형 세션을 얻는 것이 더 어렵습니다.

expect배포판에서 설치할 수 있는 프로그램의 스크립트를 사용하여 이 작업을 수행할 수 있습니다 .

#!/usr/bin/env expect -f
spawn ktutil
send "read_kt [lrange $argv 0 1]\nl\n"
set CTRLZ \032
interact {
 -reset $CTRLZ {exec kill -STOP [pid]}
 \003 exit
}

myktutil위치 중 하나 에 저장 PATH하고 실행 가능하게 만듭니다.chmod +x

그러면 다음과 같이 할 수 있습니다:

$ myktutil foo.keytab

그러면 keytab 파일을 읽고 foo.keytab키를 나열한 다음 대화형 명령으로 이동합니다.

중요한 작업을 수행하기 위해 스크립트를 확장하려면 expectTcl 언어에 익숙해야 합니다.

관련 정보