su, sudo : 특정 사용자 권한으로 쉘/명령 실행

운영체제로그/Linux 2011. 3. 8. 18:10

 

su

su 는 substitue(교체하다)의 약자로  다른 사용자의 계정으로 전환해 주는 유틸리티이다. 

-,  -l, -login 모두 동일한 옵션으로, 이 옵션을 주고, 실행을 하면, 해당 사용자의 권한으로 쉘을 실행하고, 환경변수까지 변경해준다.  

su - hiddenviewer=> hiddenviewer 계정으로 쉘을 실행하고, 환경변수까지 변경함

 - 옵션을 사용하지 않고, su를 실행하면 해당 사용자의 계정으로 쉘을 실행하지만 환경변수는 변경하지 않는다. 

 

 

 

sudo

시스템 관리자나 다른 사용자의 권한으로 해당 명령을 실행할 수 있게 하는 명령으로,  이런 허용여부는 /etc/sudoers 파일에 설정되어 있다.  

일반 사용자 계정으로 로그인 했을 때, 잠시 관리자 권한으로 특정자원에 접근하고 싶을 때 sudo 명령을 사용하여 관리자 권한으로 

명령을 실행할 수 있다.  다른 사용자의 권한을 획득하려 할 때, 비밀번호를 묻게 되는데 이 비밀번호를 올바로 입력했다 하더라도, 

/etc/sudoers 파일에 해당 사용자가 지정되어 있지 않으면, sudo 명령은 실패하게 된다. 

 

sudo cat /etc/sudoers<= -u옵션으로 사용자를 지정하지 않으면, 기본으로 root로 실행함
Password:   <= 여기서 올바로 비밀번호를 입력했다 하더라도, /etc/sudoers에 hiddenviewer가 
명시되어 있지 않으면 실패한다.

 

 

/etc/sudoers 파일에

 hiddenviewer ALL=(ALL) ALL 
이라는 문장을 추가하여 sudo 실행을 허용하면, 위 명령은 성공하게 된다.