sudo
두 명의 사용자에 대한 구성을 고려하십시오 .
mary ALL = (ALL) NOPASSWD: /bin/ls, /bin/cat
bob ALL = (ALL) PASSWD: /bin/sort
이제 사용자가 mary
목록에 없는 명령을 실행할 때마다 인증을 받아야 합니다.
$ sudo sort
[sudo] password for mary:
Sorry, user mary is not allowed to execute '/bin/sort' as root on eagle.
mary
허용되지 않는 다른 명령을 시도 하면 비밀번호를 입력하라는 메시지가 표시됩니다. 그러나 의 경우에는 그렇지 않으며 bob
시간이 초과될 때까지 한 번만 요청됩니다. mary
최근에 비밀번호를 정확하게 제공할 수 있게 되었는데 왜 계속해서 인증해야 합니까?
나는 적어도 하나를 찾았습니다유제그러나 답변/댓글이 충분히 명확하지 않은 것 같습니다. 비밀번호 입력에 관한 질문이고 sudo -v
여기서 질문은 허용되지 않는 명령 구성에 관한 것입니다. 예, PASSWD
규칙과 태그의 상호 작용은 NOPASSWD
비슷합니다.
답변1
간단히 말해서 이것은 보안 문제입니다. Mary가 비밀번호를 제공하지 않고도 특정 명령을 실행할 수 있다고 말씀하셨습니다. 실패하면 "기본 작업"이 수행됩니다. 가서 비밀번호를 물어본 다음 실패한 시도를 기록하세요.
무서운 기술적 내용을 다루지 않고 인증과 승인을 분리합니다.
- Mary가 명령을 실행하려고 합니까? ls 또는 cat인지 확인하고, 다른 명령인 경우 기본값을 확인하십시오.
- Mary를 승인할 방법을 찾을 수 없습니다. 인 척하다. -- 인증 실패. foo를 실행하려고 할 때 Mary를 인증할 수 없습니다.
상대적인
- 이 사람이 Bob인가요? 비밀번호가 있는지 확인하세요.
- 저는 Bob입니다. Bob이 foo를 실행할 수 있나요?
- 아니요, bob은 foo를 실행할 수 없습니다. 비밀번호를 통한 인증은 괜찮습니다. 캐시하세요. 그러나 명령을 승인할 수 없습니다.
기본적으로 당신이 말한 것은
- 정렬을 실행하려면 비밀번호 bob을 사용하세요.
- 비밀번호 없이 Mary는 ls를 실행할 수 있습니다.
- Mary가 foo를 실행하려고 하면 인증할 수 없습니다(방법 없음).
- bob이 foo를 실행하려고 하면 인증할 수 있지만 권한이 부여되지는 않습니다.
Mary는 사용자 표시줄에 메시지가 표시되는 것과 같은 이유로 비밀번호를 입력하라는 메시지가 표시됩니다. 따라서 사용자는 sudo에 대해 일반 명령 사전을 실행하여 명령 출력을 검사하여 허용되지 않는 명령을 확인할 수 없습니다.
아니면 그것을 보는 다른 방법. Mary의 경우 "비밀번호로 인증 시 실행할 항목" 변수가 비어 있으므로 비밀번호로 인증할 수 없습니다. bob에 대해 "비밀번호로 인증할 때 실행할 수 있는 항목" 변수가 비어 있지 않기 때문에 Bob은 비밀번호로 인증할 수 있지만 무언가를 실행할 수 있는 권한이 없습니다.
답변2
sudo
SRPM을 다음에서 다운로드했습니다 .여기, 내부에서 컴파일하고 실행하여 gdb
더 깊은 이해를 얻으십시오. 이것힌트setuid 루트 프로그램을 디버깅하는 데 매우 유용합니다.
문제는 사용자가 명령을 실행할 권한이 있고 인증된 경우에만 sudo
타임스탬프 파일(내부에 있음)이 생성/업데이트된다는 것입니다. /var/db/sudo/<user>
인증에는 비밀번호 입력 및/또는 전화가 포함됩니다.폴리아크릴아미드기준 치수. 권한 부여는 사용자가 특정 명령을 실행할 수 있는지 여부를 확인하는 것을 의미합니다. 여기에는 두 가지 조건이 있습니다.
이 플래그의 의미는 NOPASSWD
나열된 명령에 대한 인증을 방지하는 것입니다. 따라서 사용자(예: mary
)가 구성에 항목이 없는 경우 PASSWD
명령을 성공적으로 실행하기 위해 인증할 필요가 없습니다. 사용자가 인증되지 않았기 때문에 타임스탬프 파일이 생성되지 않습니다. 그렇지 않고 해당 사용자가 권한이 없는 명령을 실행하면 인증이 발생합니다. 하지만 다시 인증 실패로 인해 파일이 생성되지 않습니다.
따라서 항목이 있는 사용자의 경우 PASSWD
목록에서 하나 이상의 명령을 성공적으로 실행한 경우에만 타임스탬프 파일이 생성됩니다. 승인되지 않은 다른 명령을 실행하려고 하면 파일이 생성되지 않고 sudo
매번 인증을 시도합니다.