AFS 토큰은 어디에 저장되어 있으며 이를 실행 중인 Screen 세션에 가져오는 방법

AFS 토큰은 어디에 저장되어 있으며 이를 실행 중인 Screen 세션에 가져오는 방법

다음 상황에 직면했습니다. GNU 화면 세션이 실행 중이고 더 이상 AFS에 액세스할 수 없습니다. 토큰이 만료되었습니다. 하지만 새 셸에서 액세스할 수 있습니다. 차이점은 다음과 같습니다.이 문제문제는 Kerberos 티켓이 없어서(음, aklog가 찾고 있는 영역이 아님) aklog를 호출할 수 없다는 것입니다. 나도 그런 표는 못 사요. AFS가 어떻게 설정되었는지는 모르지만 작동합니다.

Kerberos 티켓은 이제 /tmp/krb5cc*에 "저장"되고 KRB5CCNAME이라는 변수에 의해 지정됩니다. Kerberos 및 screen/tmux에 이 문제가 있는 경우 kinit를 수행하거나 KRB5CCNAME을 설정하여 최신 티켓을 이전 쉘로 포팅할 수 있습니다.

AFS 자격 증명이 어떻게 지정되는지 궁금하고, 유사하게 이를 쉘(AFS 액세스 권한이 있는 ssh 쉘)에서 내부 쉘( screen -r더 이상 AFS 액세스 권한이 없는 이후에 얻는 쉘)로 포팅할 수 있는지 궁금합니다. ) ). 두 셸 간에 관련 환경 변수가 변경되지 않은 것 같습니다. strace tokens액세스 전용이라고 말하는데 /proc/fs/openafs/afs_ioctl, 이는 프로세스와 관련되어 있고 특수 커널 기능을 사용하므로 매우 어려울 수 있음을 의미합니다. 쉘을 닫고 새 쉘을 열지 않고도 AFS에 다시 액세스할 수 있는 방법에 대한 아이디어가 있습니까?

답변1

ssh를 통해 로그인하고 pam_afs_session.so가 활성화되면 Kerberos 티켓이 생성되고 이를 사용하여 AFS 토큰을 생성합니다. 로그아웃하면 Kerberos 티켓과 AFS 토큰이 삭제됩니다.

알다시피 Kerberos 티켓은 파일에 저장되고 AFS 토큰은 커널의 PAG(Process Authentication Groups)에 저장됩니다. 두 번째 SSH 세션을 통해 연결하면 pam_afs_session.so 라이브러리는 새 파일에 새 Kerberos 티켓을 생성하고 새 PAG에 새 AFS 토큰을 생성합니다.

GNU 스크린 세션에서 AFS 토큰을 활성 상태로 유지하는 가장 간단한 방법은 다음과 같습니다.

  1. 새 Kerberos 티켓 파일을 만듭니다. 기존 것들은 이렇게 보일 수도 있어요/tmp/krb5cc_UID_RANDOM. 새로운 RANDOM 문자열을 사용하여 하나를 만드십시오.
  2. 방금 만든 새 티켓 파일에 기존 티켓 파일을 복사합니다.
  3. KRB5CCNAME 환경 변수를 생성한 새 이름으로 변경하고 내보냅니다.
  4. 부팅 화면 -r
  5. 이제 셸에서 로그아웃할 수 있습니다. 이렇게 하면 이전 티켓 파일에서 Kerberos 티켓이 제거되지만 복사본은 내부 셸에서 계속 유효합니다. 그러나 AFS 토큰도 삭제되므로...
  6. 내부 쉘에 다시 연결하면 다음을 실행하십시오.aklog. 이렇게 하면 저장된 Kerberos 티켓이 새 AFS 토큰에 복사됩니다. 만료될 때까지 유효해야 합니다. 내부 쉘을 종료하기 전에 다음을 실행해야 합니다.파괴하다더 이상 필요하지 않은 Kerberos 티켓을 삭제하세요.

관련 정보