다음 이전 차례

7. Changing user ID

7.1 su

su 명령어를 사용할때는 사용하려는 새로운 아이디를 적어주는데 아무것도 적어주지 않으면 root 가 사용된다. 대게의 경우 su 는 다른아이디로 서브쉘을 기동하는데, 아규먼트로 '-'(최 근에는 -l 또는 -login)를 붙일 경우 su 는 로그인쉘을 기동한다. 어쨌거나 su는 이런 기능을 수행하기위해 login프로그램을 쓰지는않는다. 대신 로그인 시뮬레이션(소스 코드에 이 용어를 쓰더군요)을 위한 다른 내장된(built in) path가 사용된다.

그 path는 일반사용자에게는 /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:.

root 에게는

/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin 이다.

뿐만 아니라 su는 꽤나 미세한 환경설정의 변화를 가져온다.

7.2 sudo

수퍼유저 명령어들을 보다 안전하게 쓸수있도록 하는 명령어들이 있는데 이것들은 보다 나은 로깅과 유저별 제한과 개별적인 패스워드 사용을 가능 하게 해준다. 가장 널리쓰이는 것은 sudo 이다.

$ sudo env

이 명령은 env 명령을 수퍼유저 모드로 실행하게 한다. (만약 그것을 허용 하게끔 설정이 되어있다면) sudo 명령어는 path를 다루는데 있어서 또다른 접근방식을 갖고 있는데, path를 바꿔서 항상 현재 디렉토리가 path의 마지막에 있게 한다. 그러나 PATH 변수를 바꾸지는 않으며 단지 SUDO_USER 같은 몇 개의 환경 변수 들만을 바꾼다.


다음 이전 차례