sudoing 시 vim을 기본 편집기로 설정하는 방법은 무엇입니까?

sudoing 시 vim을 기본 편집기로 설정하는 방법은 무엇입니까?

저는 CentOS 5.9 시스템에서 작업 중이며 단지 입력하고 싶습니다.

sudo vi 일부 파일

그리고 믿음직한 vim에게 구문 강조 등을 하도록 하세요. 이것은 간단해 보이지만 여러 번 시도한 후에도 여전히 작동하지 않습니다.

root@localhost> which vi
alias vi='vim'
        /usr/bin/vim
root@localhost> sudo which vi
/bin/vi
root@localhost> sudo -i which vi
/bin/vi
root@localhost> sudo -E which vi
/bin/vi

vim이 기본적으로 호출되는지 확인하기 위해 루트로 로그인했습니다 vi somefile. 그게했다. 또한 환경을 보존하기 위해 -E를 사용하고 로그인 스크립트를 실행하기 위해 -i를 사용해 보았습니다. 그건 소용없어요. 내 .profile 및 /etc/environment에서 편집기를 vim으로 내보내고 vi를 vim의 별칭으로 설정했습니다.

또한 /etc/sudoers의 env_reset 줄을 주석 처리했습니다.

또 무엇을 시도해야 합니까? vi를 vim으로 바꾸는 것이 이렇게 어려울 것이라고는 예상하지 못했고 여기서 무슨 일이 일어나고 있는지 정말로 알고 싶습니다.

답변1

이것이 바로 이 명령 sudoedit의 목적입니다. 사용자 환경에서 편집할 수 있도록 임시 복사본을 생성합니다. 적절한 바이너리를 찾기 위해 SUDO_EDITOR, VISUAL및 변수를 조회합니다 . EDITOR편집 후에는 복사본이 원본 파일을 덮어쓰게 됩니다.

답변2

vim대신 항상 사용하고 싶다면 다음을 vi수행할 수 있습니다.

$ sudo ln -s /usr/bin/vim /usr/local/bin/vi

(이것은 당신이 가지고 있다고 가정합니다/usr/local/bin 앞으로 /bin당신의 PATH. )

물론 이것은 (시스템 로컬) 해킹이지만 매우 간단하고 효과적입니다.

답변3

나는 관찰된 동작의 원인을 PATH 변수에서 찾을 수 있다고 생각합니다. 일반 로그인 사용자로서 세그먼트는 /usr/bin이전에 있을 /bin수 있지만뿌리, 세그먼트가 /bin앞에 있습니다 /usr/bin.

그렇다면 차이점은 다음 출처 중 하나 또는 둘 다에서 추적될 수 있습니다. 사용시 PATH 값이 다른 경우스도, 이는 다음을 가리킨다.안전한 길구성 매개변수는 일반적으로 /etc/sudoers파일이나 파일 중 하나에 설정됩니다 /etc/sudoers.d/*. 단, 로그인 시 PATH 값이 다른 경우뿌리(1차 로그인인지, 아니면스도-i/ 스위치), 및 --login와 같은 시작 파일을 가리킵니다 ./etc/{profile,profile.d/*}/etc/{bashrc,bash_*}

CentOS 5가 설치되어 있지 않지만 Alma 8 서버는 다음 정보를 제공합니다.

## As a regular logged-in user
$ echo $PATH
/home/me/.local/bin:/home/me/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

## Sudoing as root (notice the reverse order)
$ sudo bash -c 'echo $PATH'           
/sbin:/bin:/usr/sbin:/usr/bin

## Sudoing as myself (same value)
$ sudo -u me bash -c 'echo $PATH'
/sbin:/bin:/usr/sbin:/usr/bin

## Indeed...
$ sudo grep secure_path /etc/sudoers
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

빠르게 살펴보실 수도 있습니다스도~의환경 유지매개변수를 추가하고 VISUAL 및 EDITOR가 아직 존재하지 않는 경우 예약된 변수 목록에 추가하지만 앞서 언급한 이후환경 재설정꺼지면 큰 변화가 없을 것입니다.

관련 정보