man visudo
설명 visudo는 (기본적으로) EDITOR
환경 VISUAL
변수를 사용하지 않습니다.
그것은 상태
"visudo에서 사용하는 편집기가 쉘 이스케이프를 허용하는 경우 사용자가 루트 쉘을 얻는 것을 방지할 수 있는 쉬운 방법은 없습니다."
이제 보안 위험이 정확히 어디에 있는지 혼란스러워졌습니다. 나는 믿는다
- 루트만 visudo를 사용하여 편집할 수 있습니다.
/etc/sudoers
- 루트만이 루트의 환경 변수를 변경할 수 있습니다.
- 루트에는 이미 루트 쉘이 있습니다
이것이 작동하지 않는 사용 사례가 있을 수 있지만 생각해 볼 수는 없습니다.
답변1
엄밀히 말하면 임의의 편집기를 실행하는 것이 추가적인 보안 위험을 초래한다고 생각하지 않습니다 visudo
. 분명히 이것을 실행하는 사용자는 visudo
이미 편집 권한을 갖고 /etc/sudoers
있으므로 시스템에서 다른 명령이 실행되도록 허용하는 규칙을 추가할 수 있습니다. 따라서 실행 중인 편집기에 관계없이 사용자는 visudo
새로운 sudo 규칙을 추가하여 원하는 모든 것을 간접적으로 실행할 수 있습니다.
EDITOR
내 생각에 환경 변수 에 대한 문서의 조언은 VISUAL
sudo의 표준 로깅을 우회하면서 루트 셸(또는 임의 명령)을 실행하는 것에 관한 것입니다. 기본적으로 sudo는 모든 성공 및 실패 인증을 시스템 로그에 기록합니다. 이는 사용자가 sudo를 통해 어떤 명령을 실행했는지에 대한 감사 추적을 시스템 관리자에게 제공합니다. 사용자가 변경한 경우 /etc/sudoers
체크섬 visudo
이나 파일 보기를 통해 확인할 수 있습니다. 그러나 사용자가 루트 셸을 얻을 수 있으면 visudo
감사 추적 없이 임의의 명령을 실행할 수 있습니다.
따라서 보안 위험은 실행 권한을 부여하는 것과 동일합니다 sudo bash
. 즉, 이 권한이 있는 사용자는 명령 실행을 제한하거나 기록하지 않고 루트 셸을 얻고 임의 코드를 실행할 수 있습니다.