![sudoers 파일에서 Perl의 attest 명령을 NOPASSWD로 설정하는 것이 안전하지 않습니까?](https://linux55.com/image/126184/sudoers%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20Perl%EC%9D%98%20attest%20%EB%AA%85%EB%A0%B9%EC%9D%84%20NOPASSWD%EB%A1%9C%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%B4%20%EC%95%88%EC%A0%84%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
prove
rsync가 원격 서버에서 다운로드한 파일에 대한 권한을 변경할 수 있도록 루트 권한이 필요한 백업 스크립트를 테스트하는 Perl 테스트 스크립트가 있습니다 .
따라서 Mac의 sudoers 파일에는 다음이 있습니다.
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
%admin ALL=(ALL) NOPASSWD:/path/to/prove
효과가있다. 하지만 제 질문은 prove
로컬 사용자가 작성한 거의 모든 Perl 스크립트를 실행하는 데 사용할 수 있기 때문에 이것이 큰 보안 위험입니까?입니다.
답변1
예, 이 방법은 안전하지 않습니다.
이후에 호출되는 명령을 실행하는 특정 래퍼를 작성하고 prove
, 루트만 수정할 수 있도록 보호하고, 루트만 액세스할 수 있는 위치에 배치합니다. 그런 다음 추가저것파일에 대한 래퍼입니다 sudoers
.
매개변수는 스크립트에서 허용되지 않습니다.
참고: 누군가가 첫 번째 Perl 스크립트나 백업 스크립트를 수정할 수 있는 경우에도 남용될 수 있습니다. 체인의 모든 항목은 에서만 액세스할 수 있도록 해야 합니다 root
.