2014-12-15 2 views
1

나는이 두 명령을 실행 :visudo 용 편집기를 어떻게 지정합니까?

export VISUAL=/usr/bin/vim 
export EDITOR=/usr/bin/vim 

을 그리고 그들은이 제대로 env에 의해 업데이트 된 경우 내가 확인. 하지만 sudo visudo을 실행하면 이상한 편집자가 생깁니다. 내가 커서를 이동 할 수 없기 때문에

-----Mg: sudoers.tmp     (fundamental)----Top------------------ 
(Read 29 lines) 

이 편집기 쓸모가 :

내가 콘솔 그것의 맨 아래에있는 편집기를 모르는 비록

이 말한다. 내가 할 수있는 일은 콘솔을 닫는 것입니다.

왜이 이상한 편집자가 실행됩니까? 편집자를 변경하려면 어떤 명령을 실행해야합니까?

답변

2

:man visudo (두 번째 단락)에서 :

에디터의 sudoers 기본 변수를 통해 오버라이드 (override) 할 수 컴파일 시간에 세트를 사용합니다 visudo를 하나 이상의 편집자의 하드 코딩 된 목록이 있습니다 . 이 목록의 기본값은/usr/local/bin/vi입니다. 일반적으로 visudo 은 위의 편집기 목록에 편집기가 포함되어 있지 않으면 VISUAL 또는 EDITOR 환경 변수를 사용하지 않습니다. 그러나 visudo 이 --with-env-editor 옵션으로 구성되거나 env_editor 기본값 변수가 sudoers에 설정된 경우 visudo는 VISUAL 또는 EDITOR로 정의 된 편집기를 사용합니다. 이것은 사용자가 사용자에게 VISUAL 또는 EDITOR를 설정하여 원하는 프로그램을 실행하도록 허용하기 때문에 보안상의 문제가 될 수 있습니다.

다른 편집기를 구성하려면 /etc/sudoers 구성을 변경하고 예를 들어 Defaults editor /usr/bin/vim 행을 추가해야합니다.

이상한 점은 Vim이 이미 기본 편집기 여야한다는 것입니다. 출력 결과에 따라 Vim (손상된 터미널 포함) 또는 다른 편집기 (프로세스 트리를 확인할 수 있음)에서 가져온 것일 수 있습니다.

+0

sudo와 sudoers의 맨 페이지를 읽었지만 man visudo를 보지 않았다. 고맙습니다. 그러나 시각적 또는 편집자를 보안 허점으로 설정할 수있는 이유는 무엇입니까? 아이디어가 있다면 설명해 주시겠습니까? – jun

+0

sudo는 특정 명령의 실행 만 허용하도록 제한 될 수 있습니다. 그러한 sudo 제한된 사용자가 EDITOR 변수를 조작 할 수있는 경우 해당 제한 사항이 우회 될 수 있습니다. Vim은 외부 쉘 명령을 실행할 수 있기 때문에 중요합니다. 그러나 최소한 사용자가 명시 적으로 입력해야하며 보이지 않는 환경 변수를 통해 자동으로 주입되지 않아야합니다. –

+1

정말 고마워요! 설득력 있네. 마지막으로 sudoers에 "Defaults editor =/usr/bin/vim"을 썼습니다. – jun

1

mg이라는 이맥스와 유사한 편집기로, 작동 방법을 알기 위해서는 설명서 페이지 $ man mg을 읽고/읽을 수 있어야합니다.

기본 편집기가 된 방법과 이유는 ... init 파일을 살펴 봐야합니다.

+0

고맙습니다. 나는 편집자를 몰랐다. 나는 남자 mg을 볼 것이다. – jun