sudo -e와 sudo vim의 차이점은 무엇입니까?

sudo -e와 sudo vim의 차이점은 무엇입니까?

sudo -e사이에 큰 차이점이 있습니까 sudo vim? sudoersvim이 기본 편집기가 되도록 파일 을 설정했습니다 . 둘 사이에 주요 차이점이 있나요? 또한 vim에서 전환해야 합니까 rvim? 시도했지만 구성 파일에 몇 가지 문제가 있습니다.

답변1

가장 큰 차이점은WHO편집무엇문서.

( sudo vim인증이 성공했다고 가정), 루트 사용자는 vim을 호출하고 그 자리에서 파일을 편집합니다(루트 환경과 vim 스왑 파일은 편집 중인 파일과 병렬입니다).

sudo를 호출하는 사용자 sudo -e또는 sudoedit자신의 환경에 있는 사용자가 자신이 소유한 파일의 임시 복사본을 편집합니다(예:~/.vimrc). 사용자가 출력을 저장한 후 임시 파일의 내용은 사용자에게 편집 권한이 없는 원본 파일로 다시 복사됩니다. 이 방법에는 특정 상황에서 편집을 방지하기 위한 몇 가지 검사도 포함되어 있습니다.

  1. 사용자가 심볼릭 링크를 편집하려고 합니다.
  2. 사용자가 심볼릭 링크가 포함된 경로를 사용하여 파일을 편집하려고 합니다.
  3. 사용자는 파일이 포함된 디렉터리에 대한 쓰기 권한을 가지고 있습니다.

왜 이러한 특정 규칙이 엄격하게 적용되는지 모르겠습니다(일종의 보안 문제인 것 같습니다).

PS 사용자는 sudo의 편집 모드를 사용하여 장치 특수 파일(블록 장치, 직렬 장치 등)을 편집할 수도 없습니다.

편집: vim을 루트로 실행하지 않는 또 다른 결과는 사용자가 루트로 임의의 명령을 실행하기 위해 이런 방식으로 vim의 셸 기능을 사용할 수 없다는 것입니다. 이를 통해 사용자는 왕국에 키를 넘겨주지 않고도 sudoers 규칙을 통해 특정 파일을 편집할 수 있습니다.

답변2

한 가지 주요 차이점이 있습니다. 를 사용하면 sudo -e편집기가 루트가 아닌 사용자로 실행됩니다. 를 사용 sudo vim하면 편집기가 루트로 실행됩니다. 이는 여러 가지 결과를 가져옵니다. 하나는 를 사용하면 sudo -e자신만의 편집기 설정을 얻을 수 있다는 것이고, 다른 하나는 을 사용하면 sudo -e루트 소유 파일을 변경할 위험이 없다는 것입니다. sudo -e또한 사용자가 루트로 다른 것을 실행하는 것을 방지합니다(대부분의 편집자는 쉘을 시작할 수 있기 때문입니다).

기본적으로 를 사용하면 sudo -e루트(여러 검사를 통해 루트 이스케이프 방지), 사용자가 실제로 파일을 편집하기 위해 상호 작용하는 모든 것은 사용자로 실행됩니다. 를 사용하면 sudo vim모든 것이 루트로 발생하며 사용자는 루트로 원하는 모든 작업을 효과적으로 수행할 수 있습니다.

당신은 또한 볼 수 있습니다Gnu/Linux의 GUI(및 CLI)에서 시스템 파일을 루트로 올바르게 편집하는 방법은 무엇입니까?

관련 정보