로그인 시 sudo의 유예기간을 자동으로 입력하는 방법

로그인 시 sudo의 유예기간을 자동으로 입력하는 방법

사용자가 로그인할 때부터 sudo 유예 기간을 제공하는 것이 보안 문제가 될 수 있다는 사실을 알고 있으면서도 이것이 내 설정에서 보안과 유용성 사이에서 유익한 절충안이 될 것이라고 생각했습니다.

문제는 이 작업을 수행하는 방법입니다. 내가 아는 한 sudo는 CLI를 제공하지 않습니다.

아마도 어떻게든 gdm 입력 비밀번호를 이와 유사한 것으로 전송할 수 있을 것입니다 sudo false. 하지만 다시 말하지만, 일반 텍스트로 제공된 사용자 비밀번호를 얻으려면 어떻게 해야 합니까? pam이에 대한 사용자 정의 모듈을 작성 해야 합니까 ?

아니면 sudo의 구현 세부 사항을 자세히 살펴보고 루트로 직접 타임스탬프 데이터베이스를 조작하는 것이 더 나을까요?

답변1

실제로 테스트되지 않은 심각한 해킹:

  • 다음 행을 추가하십시오 /etc/pam.d/gdm.

    # Update the sudo ticket; proceed whether this succeeds or fails
    session [success=ignore new_authtok_reqd=ignore] optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket
    
  • 콘텐츠 /usr/local/sbin/update_sudo_ticket:

    #!/bin/sh
    DIR=/var/run/sudo/$PAM_USER
    if [ -d "$DIR" ]; then touch "$DIR"; else mkdir "$DIR"; fi
    

tty_ticket이 옵션을 꺼야 합니다 /etc/sudoers(그렇지 않으면 어쨌든 의미가 없습니다. Gdm 로그인은 X 세션의 가상 터미널에서 수행하는 모든 작업에 영향을 미치지 않습니다).

나는 이것이 작동할 것이라고 보장하지 않습니다. 이로 인해 명백한 보안 허점이 발생하지 않는다고 보장할 수 없습니다. 자신의 책임하에 사용하십시오.

답변2

Giles는 나에게 다음과 같은 더 간단한 솔루션을 생각해내도록 영감을 주었습니다. /etc/mdm/PostLogin/DefaultLinux-Mint Mate( /etc/gdm/PostLogin/DefaultUbuntu)의 실행 파일에 다음 줄이 포함되어 있는지 확인하세요 .

touch /var/lib/sudo/$LOGNAME

관련 정보