sudo에서 비밀번호를 묻는 메시지를 강제로 표시

sudo에서 비밀번호를 묻는 메시지를 강제로 표시

다음을 수행하면:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

sudo에 대한 두 번째 호출에서는 다시 로그아웃하더라도 여전히 특정 시간 제한 내에 있기 때문에 비밀번호를 묻지 않습니다. 즉, 비밀번호를 다시 입력하라는 메시지가 표시될 필요가 없습니다.

제대로 작동하는지 확인하기 위해 몇 가지 새로운 권한을 시도하고 있기 때문에 시간 초과가 발생할 때까지 기다리는 동안 속도가 정말 느려집니다.

시간 초과를 재설정하는 명령을 실행할 수 있나요?

그런데, 시간 초과를 변경하거나 다른 사용자에게 영향을 주고 싶지 않습니다!

답변1

sudo -k시간 초과 타임스탬프가 종료됩니다. 나중에 다음과 같이 명령을 입력할 수도 있습니다.sudo -k test_my_privileges.sh

에서 man sudo:

-케이-K(제거 보장) 옵션은 사용자의 타임스탬프를 완전히 제거하고 명령이나 다른 옵션과 함께 사용할 수 없다는 점을 제외하면 -k와 유사합니다. 이 옵션에는 비밀번호가 필요하지 않습니다.

-케이단독으로 사용하는 경우 sudo의 -k(kill) 옵션은 시간을 Epoch로 설정하여 사용자의 타임스탬프를 무효화합니다. 다음에 sudo를 실행할 때 비밀번호가 필요합니다. 이 옵션은 비밀번호가 필요하지 않으며 사용자가 .logout 파일에서 sudo 권한을 취소할 수 있도록 추가되었습니다.
암호가 필요할 수 있는 명령이나 옵션과 함께 사용하면 이 옵션을 사용하면 sudo가 사용자의 캐시된 자격 증명을 무시하게 됩니다. 따라서 sudo는 비밀번호를 묻는 메시지를 표시하고(보안 정책에 비밀번호가 필요한 경우) 사용자의 캐시된 자격 증명은 업데이트되지 않습니다.

영구적으로 변경할 수도 있습니다. 에서 man sudoers:

타임스탬프 시간 초과

sudo가 비밀번호를 다시 요청하기 전까지 경과할 수 있는 시간(분)입니다. 작은 세분성만으로는 충분하지 않은 경우 시간 제한에 2.5와 같은 소수 부분이 포함될 수 있습니다. 기본값은 5입니다. 항상 비밀번호를 묻는 메시지를 표시하려면 0으로 설정하세요. 0보다 작은 값으로 설정하면 사용자의 타임스탬프가 만료되지 않습니다. 이는 사용자가 각각 sudo -v 및 sudo -k를 통해 자신의 타임스탬프를 생성하거나 삭제할 수 있도록 하는 데 사용할 수 있습니다.

답변2

Sean의 답변은 훌륭하지만 이 상황에 유용할 수 있는 추가 구성 옵션이 있습니다.

에서 man sudoers:

tty_티켓

설정된 경우 사용자는 tty별로 인증해야 합니다. 이 플래그가 활성화되면 sudo는 사용자가 로그인한 tty 이름을 딴 사용자의 타임스탬프 디렉터리에 있는 파일을 사용합니다. 비활성화된 경우 디렉터리의 타임스탬프가 사용됩니다.

이 플래그는 기본적으로 켜져 있습니다.

에서 man sudo:

sudoers에서 tty_tickets 옵션이 활성화되면 타임스탬프는 tty별로 세분성을 가지지만 여전히 사용자 세션보다 오래 지속될 수 있습니다. sudo는 devpts 파일 시스템을 사용하는 Linux 시스템, 장치 파일 시스템이 있는 Solaris 시스템, 파일이 더 이상 사용되지 않을 때 Mac OS Stamps와 같은 기타 시스템을 사용하여 tty 기반 시간을 확인할 수 있으며 이를 무시합니다. 이 기능은 일반적으로 사용할 수 없으므로 관리자는 이 기능에 의존해서는 안 됩니다.

비교적 새로운 것 같아요. 시스템이 이를 지원하는 경우 로그아웃했다가 로그인하면 sudo가 비밀번호를 다시 묻습니다. (내 쉘에도 로그아웃 스크립트가 있습니다 sudo -K.)

관련 정보