NOEXEC가 지정된 프로그램의 실행을 차단하지 않는 이유는 무엇입니까?

NOEXEC가 지정된 프로그램의 실행을 차단하지 않는 이유는 무엇입니까?

CentOS6.4에서 NOEXEC를 시도했습니다. /etc/sudo.conf다음과 같이 파일을 편집했습니다.

Path noexec /usr/libexec/sudo_noexec.so

그리고 /etc/sudoers:

ssh ALL=(root) ALL,NOEXEC:/usr/bin/passwd

noexec lib가 올바른 경로에 있다고 확신하지만 사용자로서 ssh를 사용하면 여전히 비밀번호를 변경할 수 있습니다. NOEXEC에서는 결과가 나오지 않습니다. 조언을 주실 수 있는 분 계십니까?

답변1

NOEXEC플래그는 프로그램 실행을 방해하지 않습니다. 이는 나열된 프로그램이 다른 프로그램을 실행하는 것을 방지합니다. ~에서만수돌:

aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi

이를 통해 aaron 사용자는 noexec를 활성화한 상태에서 /usr/bin/more 및 /usr/bin/vi를 실행할 수 있습니다. 이렇게 하면 이 두 명령이 다른 명령(예: 쉘)을 실행하는 것을 방지할 수 있습니다.
시스템이 noexec를 지원할 수 있는지 확실하지 않은 경우 언제든지 noexec가 활성화되었을 때 쉘 이스케이프가 작동하는지 확인할 수 있습니다.

사용자가 특정 명령을 실행하지 못하도록 하려면 !예를 들어 다음을 살펴보십시오.

ssh ALL=(root) ALL, !/usr/bin/passwd

/usr/bin/passwd다른 이름으로 복사본을 만들고 이를 호스트에 복사하고 적절한 권한 등을 설정할 수 있으므로 이 줄은 별로 도움이 되지 않습니다.

관련 정보