예를 들어 터미널을 열고 설치할 sudo apt-get update && sudo apt-get upgrade
업데이트가 있다고 가정해 보겠습니다.아무것도 누르지 마세요. 터미널을 그대로 두십시오. 쉘은 계속해서 입력(y/n)을 기다립니다.
잠시 후 (보다기본 timestamp_timeout
, 예를 들어 1시간) 터미널로 돌아갑니다.~에 따르면Y(업데이트를 설치할 수 있다고 가정). 작업이 완료되고 업데이트가 설치됩니다. 이것은,sudo 권한은 timestamp_timeout
.
이런 행동이 가능한 이유는 무엇입니까? 이것이 쉘/시스템 보안의 취약점입니까? 이거 안전하지 않은 거 아닌가요? 이 설정을 수정할 수 있나요?
답변1
sudo는 다른 사용자(fe 루트)로 프로그램을 실행하는 데 사용됩니다.
보안 정책은 사용자가 인증 없이 일정 기간 동안 sudo를 다시 실행할 수 있도록 자격 증명 캐싱을 지원할 수 있습니다.
다른 사용자로 프로그램을 시작했고 실행 중인 경우 해당 프로세스가 오랫동안 실행되었기 때문에 실행 중인 프로세스에서 상승된 권한을 제거할 필요가 없다고 생각합니다.
캐싱 기능을 사용하면 비밀번호를 묻는 메시지를 표시하거나 5분 이내에 상승된 권한으로 명령을 실행하지 않고도 5분 이내에 sudo를 여러 번 실행할 수 있습니다.
프로세스가 실행되는 동안 프로세스 소유자를 변경하는 것도 불가능합니다. 바라보다이 스레드참고용.