사용자가 로그인할 때부터 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/Default
Linux-Mint Mate( /etc/gdm/PostLogin/Default
Ubuntu)의 실행 파일에 다음 줄이 포함되어 있는지 확인하세요 .
touch /var/lib/sudo/$LOGNAME