나는 Linux에서 MIT를 많이 사용하고 ktutil
명령 단축키와 파일 이름 완성이 도움이 될 수 있음에도 불구하고 다음 순서를 사용하는 데 지쳤습니다.
ktutil
rkt my.keytab
l
쉘에서 "한 줄"로 동일한 결과를 얻을 수 있는 방법이 없나요? 별칭, 함수 또는 다른 도구를 사용해야 합니까?
답변1
나는 항상 klist
keytab 파일의 내용을 나열하기 위해 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 - 프로세스 대체
ktutil
STDIN을 사용하여 다음과 같이 리디렉션 할 수도 있습니다 .
$ 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
키를 나열한 다음 대화형 명령으로 이동합니다.
중요한 작업을 수행하기 위해 스크립트를 확장하려면 expect
Tcl 언어에 익숙해야 합니다.