visudo가 다른 편집자를 방해하는 이유는 무엇입니까?

visudo가 다른 편집자를 방해하는 이유는 무엇입니까?

man visudo설명 visudo는 (기본적으로) EDITOR환경 VISUAL변수를 사용하지 않습니다.

그것은 상태

"visudo에서 사용하는 편집기가 쉘 이스케이프를 허용하는 경우 사용자가 루트 쉘을 얻는 것을 방지할 수 있는 쉬운 방법은 없습니다."

이제 보안 위험이 정확히 어디에 있는지 혼란스러워졌습니다. 나는 믿는다

  • 루트만 visudo를 사용하여 편집할 수 있습니다./etc/sudoers
  • 루트만이 루트의 환경 변수를 변경할 수 있습니다.
  • 루트에는 이미 루트 쉘이 있습니다

이것이 작동하지 않는 사용 사례가 있을 수 있지만 생각해 볼 수는 없습니다.

답변1

엄밀히 말하면 임의의 편집기를 실행하는 것이 추가적인 보안 위험을 초래한다고 생각하지 않습니다 visudo. 분명히 이것을 실행하는 사용자는 visudo이미 편집 권한을 갖고 /etc/sudoers있으므로 시스템에서 다른 명령이 실행되도록 허용하는 규칙을 추가할 수 있습니다. 따라서 실행 중인 편집기에 관계없이 사용자는 visudo새로운 sudo 규칙을 추가하여 원하는 모든 것을 간접적으로 실행할 수 있습니다.

EDITOR내 생각에 환경 변수 에 대한 문서의 조언은 VISUALsudo의 표준 로깅을 우회하면서 루트 셸(또는 임의 명령)을 실행하는 것에 관한 것입니다. 기본적으로 sudo는 모든 성공 및 실패 인증을 시스템 로그에 기록합니다. 이는 사용자가 sudo를 통해 어떤 명령을 실행했는지에 대한 감사 추적을 시스템 관리자에게 제공합니다. 사용자가 변경한 경우 /etc/sudoers체크섬 visudo이나 파일 보기를 통해 확인할 수 있습니다. 그러나 사용자가 루트 셸을 얻을 수 있으면 visudo감사 추적 없이 임의의 명령을 실행할 수 있습니다.

따라서 보안 위험은 실행 권한을 부여하는 것과 동일합니다 sudo bash. 즉, 이 권한이 있는 사용자는 명령 실행을 제한하거나 기록하지 않고 루트 셸을 얻고 임의 코드를 실행할 수 있습니다.

관련 정보