CLI를 통해 로그인할 때 sudo의 유예 기간을 자동으로 입력하는 방법은 무엇입니까? [복사]

CLI를 통해 로그인할 때 sudo의 유예 기간을 자동으로 입력하는 방법은 무엇입니까? [복사]

내가 원하는 것은 비밀번호를 다시 입력할 필요 없이 즉시 로그인하여 sudo 명령을 실행할 수 있는 것입니다. 로그인하고 권한 있는 명령을 실행해야 할 때 비밀번호를 연속으로 두 번 입력하는 것은 매우 중복됩니다. 보안 위험을 이해합니다. 한동안 자리를 비운 후 비밀번호를 다시 입력해야 하지만 기본적으로 로그인하면 이를 방지하기 위해 이 세션이 자동으로 설정되어야 하는 것 같지만 어떤 이유에서는 그렇지 않습니다.

알아요이러한 솔루션하지만 모두 gdm에 의존하고 있어서 초보자만을 위해 LightDM을 설치한 것 같습니다. 또한 저는 GUI 인터페이스에 로그인하지 않으며, 제가 아는 한 콘솔은 애초에 로그인을 관리하는 데 그 어떤 것도 사용하지 않습니다.

중요한 경우 VMware에서 Ubuntu 13.04를 사용하고 있습니다. KDE가 설치되어 있지만 특별한 이유가 없으면 일반적으로 로드하지 않습니다.

이상적인 솔루션은 SSH 로그인에도 작동합니다.

고쳐 쓰다:

Gilles의 제안에 따라 이제 다음과 같은 작업 설정이 생겼습니다.

~ tail -n1 /etc/pam.d/sshd
session optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket

그리고(확신하는sudo visudosudoers 편집 용 )

~  sudo head -n12 /etc/sudoers|tail -n1
Defaults        !tty_tickets

그리고 새로운 스크립트를 생성하세요

~ cat /usr/local/sbin/update_sudo_ticket
#!/bin/sh
touch -c "/var/lib/sudo/$PAM_USER" 2>/dev/null

실행 가능하게 만듭니다( sudo chmod u=+rwx,g=+rx-w,o=-rwx /usr/local/sbin/update_sudo_ticket).

~  ls -la /usr/local/sbin/update_sudo_ticket
-rwxr-x--- 1 root root 57 Sep 21 20:52 /usr/local/sbin/update_sudo_ticket

답변1

당신은 그것을 사용할 수 있습니다pam_exec외부 명령을 호출합니다. pam_exec로그인 서비스를 호출하는 사용자가 제어하는 ​​환경에서 실행되므로 거기에서 호출하지 말고 예측 가능한 환경(예: 또는 ) su이 있는 서비스에서만 호출하세요 .sshdlogin

sudo사용자의 타임스탬프를 업데이트하는 옵션은 없으며 삭제만 가능합니다. 따라서 타임스탬프를 수동으로 업데이트해야 합니다. 해당 옵션을 사용하지 않는 경우 tty_tickets(별로 유용하지 않음) 디렉터리의 타임스탬프를 업데이트하기만 하면 됩니다.

session optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket

/usr/local/sbin/update_sudo_ticket비슷한 것을 어디서 찾을 수 있나요?

#!/bin/sh
touch -c "/var/lib/sudo/$PAM_USER" 2>/dev/null

답변2

visudo를 사용하여 /etc/sudoers 파일을 편집하고 다음 줄을 추가합니다.

%wheel ALL=(ALL) NOPASSWD: ALL

그런 다음 사용자가 그룹에 속해 있는지 확인하십시오 wheel.

usermod -a -G wheel USERNAME_HERE

관련 정보