VIM : “sudo vim bad_idea”? www /와 같은

#Vim의 irc 사용자는 다음과 같이 Vim과 함께 Sudo를 사용하지 말 것을 권고했습니다.

sudo vim bad_idea

/ var / www /와 같은 위치에서 작업을 수행 할 때 문서를 작성할 수 없습니다. 따라서 sudo를 사용하지 않으면 문제가됩니다. 물론 / tmp /와 같은 다른 위치에서 변경 한 다음 / var / www에 dirs를 복사 할 수 있습니다. 그러나 나는 더 쉬운 방법을 느낀다.

  1. “스도 Vim”을하지 않으면 왜?
  2. 첫 번째 질문에 예인 경우 sudo를 사용하지 않는 문제를 어떻게 피할 수 있습니까?


답변

나는 첫 번째 범주에 속한다 : sudo vim /var/www/html/some_file나쁜 생각이다; 기록되지 않은 쉘 이스케이프를 허용합니다. 대신 sudoedit /var/www/html/some_file;를 사용하십시오 . 같은 효과가 있습니다.


답변

참조 : /programming/1005/getting-root-permissions-on-a-file-inside-of-vi :

%는 현재 파일 이름으로 바뀌므로 다음을 사용할 수 있습니다.

: w! 스도 티 %


답변

vim을 사용하면 사용자가 임의의 쉘 명령을 실행할 수 있으므로 많은 시스템 관리자는 vim을 sudo와 함께 사용할 수 없습니다.

rvim은 vim에 포함되어 있습니다. 쉘 명령을 허용하지 않는 제한된 vim입니다. 또는 같은 이유로 vim을 일시 중지시킬 수 있습니다.

자신의 상자에서 그 극단으로 가야하는지 여부는 논쟁의 여지가 있습니다.


답변

시스템 전반의 구성 파일을 편집 할 때는 완전히 괜찮습니다. 항상 루트 권한을 가지고 있으므로 모든 권한을 가지고 있으므로 더 이상 필요하지 않은 즉시 해당 권한을 삭제하십시오.

특별한 경우 /var/www/, 예를 들어 웹 서버 페이지에서는 일부 소유권 / 그룹 / 권한 변경에 대해 생각할 수도 있지만 특정 설정 (단일 / 다중 사용자, 실제 웹 서버 / 단지 로컬 호스트, 동적)에 따라 달라집니다 / 정적 등)


답변

이와 같은 질문으로 인해 이마가 부딪 쳤습니다. 저는 보안의 반대편에 있습니다. “일반 사용자가 악의적 인 활동을하는 것을 방지하거나 요구하지 않는 한 보안은 사용자 경험을 방해해서는 안됩니다.”

vim의 sudo 사용을 막는 것은 단지 반창고입니다. 앞에서 언급했듯이 누군가는 다음을 사용할 수 있습니다.

sudo su -

또는

sudo /bin/bash

또는

sudo nano file

또는

sudo my_exectuable_text_editor file

요법

만약 누군가가 박스에서 악의적 인 일을하는 것에 대해 정말로 걱정한다면, 그들에게 sudo (혹은 root 암호) 권한, 기간을주지 마십시오. sudo를 사용하여 악의적 인 활동을 막는 은밀한 총알은 없으며 모든 “수정 사항”을 “적용”하여 사람이 악의적 인 일을 할 수 없도록함으로써 자신을 미치게 할 것입니다.

누군가가 소유권 / 그룹 변경을 언급했습니다. 웹 서버가 다른 사용자로 실행 된 것처럼 파일에 대한 권한을 변경하면 사이트가 갑자기 작동하지 않는 것처럼 문제가됩니다. 글쎄, 그건 당신을 도울 수 없습니다. 웹 서버가 실행되는 그룹에 사용자를 추가 할 수 있지만 그룹에 파일에 대한 쓰기 권한이없는 경우 chmod -R g + w * (또는 chmod 개별 파일)를 수행해야합니다. 모든 파일을 chmod 해야하는 경우 원하는 작업과 번거 로움이 될 수 있습니다.

어떤 사람들은 rvim 사용을 제안하기까지했습니다. 물론 특정 사용자 만 rvim을 허용 할 수 있도록 / etc / sudoers에 줄을 추가 할 수도 있지만, 해당 경로로 이동해야하는 경우 웹 기반 파일 관리자를 구현하는 것이 더 좋습니다. 이렇게하면 웹 서버가 실행중인 사용자로 실행되므로 파일 권한 문제가 없으며 누가 어떤 파일을 편집하는지 누가 세밀하게 제어 할 수 있습니다.

어쨌든 내 두 센트.


답변

실행 sudo vim해도 $HOME디렉토리가 변경되지 않으므로 루트 권한으로 Vim을 실행하지만 $HOME여전히 일반 사용자를 가리 킵니다.

Vim을 처음 실행하는 경우 ~/.viminfo파일이 일반 사용자 디렉토리 내에 생성되지만 루트 권한으로 생성 될 수 있습니다 .


답변

이것이 자신의 컴퓨터 라면 … Denilson이 지적한 가장 중요한 경우를 제외하고 ‘sudo vim’을 사용할 수없는 이유는 없습니다. 루트가 소유 한 ~ / .viminfo를 만들 수도 있습니다.

그렇지 않은 경우 -시스템 관리자가 “man sudo”에 따라 수행 할 수있는 작업과 수행 할 수없는 작업을 제한하는 경우 : “대부분의 시스템에서 sudo의 noexec 기능으로 쉘 이스케이프를 방지 할 수 있습니다. 자세한 내용은 sudoers (5) 매뉴얼을 참조하십시오. “

따라서이 경우 sysadmin이 vim 내에서 루트로 서브 쉘을 실행할 가능성에 대해 우려하는 경우 noexec 기능을 사용할 수 있습니다. 그러나 … 초기 사례로 돌아가서-이것이 컴퓨터라면 ‘sudo vim’을 실행하는 것이 안전하다고 생각합니다.