본문 바로가기

TroubleShooting/Etc

vi 에서 shell 기능 막기

728x90
 vi(vim) 으로 파일 편집 작업중에 ":shell" 으로 하던 작업을 중지하고, shell 로 빠져나갈 수 있습니다. 편리하긴 하지만, 의도적으로 쉘로 빠져나가는 것을 막기 위해 할 수 있는 방법을 찾아보았습니다. CLI 기능 작성 중 'vi' 를 사용해야하는 경우, root 나 특정 사용자 권한을 가질 수 있는 상황을 막을 경우에 도움이 될 듯합니다.

1. /bin/false 를 이용 : 현재 작업중인 쉘을 /bin/false 로 변경하여 vi 실행
# SHELL=/bin/false vi /tmp/33

문제점 : vi 에서 "set shell=/bin/sh" 으로 쉘을 변경하면, shell 프롬프트로 빠져나올 수 있다.

2. vim -Z 이용 : vim 옵션중 '-Z' 를 붙여서 파일 작업
# vim -Z /tmp/33

그외, 예전 vi 클론 중 nvi 에도 비슷한 옵션인 ('-S') 이 있다고 하는군요.

 출처 : 
http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2006-06/msg00676.html 

'TroubleShooting > Etc' 카테고리의 다른 글

unix(linux) 에서 date 를 unixtime 형태로 변환  (0) 2011.07.27
vim 에서 UTF-8 지원  (0) 2011.07.26
gdb 에서 유용한 기능 refresh  (0) 2011.06.14
vimdiff 많이 사용하는 기능  (0) 2011.04.29
svn externals 사용하기  (0) 2011.04.12