2011년 4월 11일 월요일

[Emacs] Edit by root privilege

Unix나 Linux, 혹은 Mac OS X 사용자라면 루트(root) 사용자 권한으로 특정 파일을 편집해야 할 일이 있다. 이 경우 터미널에서 sudo 명령을 조합해 vim 등을 띄워서 편집하는 등의 방법이 많이 쓰이고 있다. (구형 Unix 라면 su 명령으로 유저 권한을 바꾸거나 root쉘로 바꾸는 경우도 있겠지만)

하지만 Emacs의 경우, emacs 자체를 루트 권한으로 띄우지 않는 한은 사용자에게 권한(permission)이 주어지지 않은 파일을 편집할 수가 없는 것 같다.

... 아니 사실 방법은 있다 ...

파일 오픈 시에 다음 처럼 커맨드를 입력한다.

/sudo::path/to/file

/sudo::로 시작하는 의미는 루트 권한으로 파일을 연다는 것이다. 이 커맨드를 입력하고 특정 파일을 열 때나, 혹은 파일 이름을 자동 완성하기 위해 TAB을 누르는 순간 사용자 혹은 루트 패스워드를 요구한다. 물론 입력해 주면 루트 권한으로 파일을 열어서 편집하고 저장할 수 있다.

하지만 이 커맨드는 find-file 에서만 통하는 커맨드다. 만약 anything이나 ido를 이용하고 있다면 C-x C-f 단축키 바인딩이 바뀌어져 있을 가능성이 높으므로 수동으로 M-x find-file을 실행해서 입력해야줘야 하는 번거로움이 따르게 된다.

물론 루트 권한을 이용해야 할 일은 자주 없을테고 더구나 루트권한은 가급적 사용하지 않는 편이 좋으므로 불편함 정도는 감수해도 괜찮을 것 같다. -_-;;;

ps. 사실 이 방법 말고도 sudo-mode 식의 확장도 존재한다. 기회가 되면 그 때에 소개를...

댓글 없음 :