CentOS 7에서 RStudio에 로그인한 후 티켓을 파기하는 대신 Kerberos PAM이 티켓을 추출하도록 하려고 합니다.
내 rstudio
파일은 /etc/pam.d/
다음과 같습니다.
#%PAM-1.0
auth required pam_krb5.so retain_after_close debug
session requisite pam_krb5.so retain_after_close debug
account required pam_krb5.so debug
RStudio가 PAM 스택과 잘 통신한다는 것을 알고 있습니다. 첫 번째 줄을 삭제하면 RStudio가 로그인하지 않기 때문입니다. 나는 또한 두 가지가 동기화되어 있음을 알려주는 다른 작업도 수행했습니다.
RStudio 문서에 따르면 다음 명령을 실행하면 다음과 같습니다. pamtester --verbose rstudio <user> authenticate setcred open_session
비밀번호를 입력하면 /tmp
통화에서 티켓이 생성되는데 krb5cc_(uid)
, 이는 제가 예상했던 것입니다. 이것이 중요한 구성 요소임을 알려주는 플래그를 제거하여 setcred
위의 pamtester 라인을 매력적이지 않게 만들 수 있습니다.
Keberos PAM 문서를 보면 session
명령 플래그와 동일한 성능을 보이지만 내가 원하는 auth
명령 플래그로 실행된다는 것을 알 수 있습니다. pam_setcred(PAM_ESTABLISH_CRED)
동일한 문서에 를 추가하면 retain_after_close
티켓이 보존되어야 한다고 나와 있습니다. 그러나 그런 일은 일어나지 않았고 그것이 실제로 표를 조사하고 있었는지조차 확신할 수 없습니다.
도움을 주셔서 감사합니다. PAM 파일에 있는 플래그와 매개변수의 거의 모든 조합을 시도했지만 성공하지 못했습니다. Kerberos는 악몽입니다. LMK 도움을 위해 무엇을 더 추가할 수 있나요? 불행하게도 PAM은 행을 이해하지 못하면 "자동으로 실패"하므로 오류를 기록하지 않기 때문에 로그 파일은 쓸모가 없습니다.
답변1
CentOS의 pam_krb5는 keep_after_close를 지원하지 않습니다.
답변2
나는 같은 질문에 거의 한 마디씩 대답했습니다. 결과적으로 rstudio-server
웹 서버를 실행하는 사용자는 올바른 /etc
.
티켓을 만든 후 사용자가 디렉터리에 쓰려고 시도하지만 쓸 수 없습니다.
테스터는 높은 권한으로 실행되기 때문에 제대로 작동합니다.
답변3
여러분, 제가 이것을 알아냈다는 걸 방금 깨달았지만 답변을 게시한 적이 없습니다. 간단히 말해서, 내가 해야 할 일은 MIT Kerberos 코드(C++로 작성, Black Magic이라고도 함)를 다운로드하고 Kerberos 티켓을 /tmp 디렉터리에 쓰는 코드 부분을 찾은 다음 코드를 다음과 같이 변경하는 것뿐이었습니다. Kerberos 티켓 끝에 임의의 6개 문자를 쓰지 않았다는 내용이 추가되고 티켓 삭제 또는 파기와 관련된 부분은 주석 처리되지 않습니다.
공유 라이브러리(pam_krb5.so 파일)로 컴파일하고 수정된 코드를 내 docker 컨테이너에 넣어야 했습니다. 그런 다음 작동했습니다. 안타깝게도 저는 더 이상 프로젝트에 참여하지 않으며 코드에 액세스할 수도 없습니다. 이것을 내 자식에 넣었 으면 좋았을 텐데요.
참고로 RStudio의 유료 버전은 이 페널티를 지원합니다. 무료 버전을 사용하려면 이 작업을 수행해야 합니다. 수정이 필요한 코드 영역을 찾는 데 도움이 필요하면 저에게 연락하세요.