본문 바로가기

Coding/기타

vi 편집기에서 root 권한 파일저장하기

나는 머신러닝 개발을 하면서 학습을 돌릴 때 Remote server에 접속하는데, ssh 접속을 통해 들어간 환경은 ubuntu/linux이다.

따라서 vscode의 remote 연결을 이용해 서버에 접속하고 코드를 수정하긴 하지만 급하면 vi로 코드를 수정하기도 한다.

 

여기서 vi 편집기로 파일을 수정하자 들어갔을때, root 권한 파일을 일반유저 권한으로 열면 수정한 내용이 저장이 안된다. 그 상태로 많이 수정을 했다면 수정한 내용이 다 날아가는 것이다.

 

vi 편집기에서의 명령모드를 이용해 저장하는 순간에 root 권한으로 바꾸는 방법이 있다.

 

:w !sudo tee %

 

여기서 %는 현재 파일 명을 의미한다.

tee 명령을 통해 현재 수정된 내용을 stdin 으로 전달하여 파일로 기록할 수 있는 것이다. 위 명령을 수행하면 sudo를 통해 root 유저 권한을 얻기 위해 패스워드를 물어볼 것이고 패스워드를 입력하면 파일이 기록된다. 즉 수정내용이 저장된다.

 

 

 

 

출처: https://lunatine.net/2014/08/12/tip-vi-write-with-root-privilege/

 

[TIP] vi 편집기에서 root권한 파일저장 :: Lunatine's Box — Lunatine's Box

깜박잊고 일반유저 권한으로 파일을 열었다 vi편집기(Linux에서는 보통 vim)를 이용해서 편집하는 작업을 하다보면 가끔 겪는 일이있는데 root 권한으로 설정 된 파일을 실수로 일반유저 상태에서 열심히 수정하는 경우이다. 이럴 때면 :q! 명령으로 종료하고 다시 root권한으로 파일을 열어 수정작업을 하는 번거로움이 발생하는데 이를 만회하는 방법을 소개하고자 합니다. vi 편집기의 명령모드 이용 일반유저 권한에서 vi편집기로 수정하고 아래 명령을 실행

lunatine.net