리눅스 su 와 su - 의 차이
su는 substitute user 의 약자이다.
특정유저로 접속하면 로긴 스크립트(.bashrc 와 .bash_profile, 그밖의 환경변수 설정들)들을 읽어서 그 유저의 환경변수를 세팅한다.
보안을 위해서는 root 계정으로 로그인하지 못하도록 설정해 두는게 좋다.
설정방법은 SSH 보안설정 방법 http://link2me.tistory.com/491 게시물을 참조하면 된다.
유닉스/리눅스는 윈도우와 달리 root 권한으로 잘못 명령을 내려 rm -rf * 를 하면 모든 데이터가 다 달라가고 복구가 불가능할 수 있다.
su - 하면 root 유저의 홈 디렉토리로 이동하고 root 유저의 환경변수를 완전히 읽어서 세팅해준다.
su - 는 사용자만 바꾸는것이 아니고 새로 로그인 하는 효과를 나타낸다.
하지만 su 를 하면 root 유저의 홈 디렉토리에 있는 /root/.bash_profile 과 /root/.bashrc 의 환경변수를 읽어들이지 않고, 현재 로그인된 유저의 환경설정 변수를 그대로 사용한다.
사용자를 추가해서 환경변수 파일을 한번 살펴보자.
앞에 . 이 붙어있는 것은 숨김파일을 의미한다.
따라서 그냥 아래 처럼 리스트를 조회하면 아무런 것이 나오지 않는다.
사용자 추가를 한 정보는 /etc/passwd 에서 확인할 수 있다.
파일 내용 확인은 # cat /etc/passwd 로 확인할 수 있는데, 여기서는 보안상
# tail -1 /etc/passwd 를 사용하여 확인해 본다.
su jsk005
를 한 결과를 그림으로 살펴보자.
pwd (현재 디렉토리 경로)가 su 를 한 경우에는 /root 로 되어 있고, su - 를 한 경우에는 유저의 홈디렉토리로 변경된 것을 알 수 있다.
다른 유저로 변경하면서 그 사용자의 환경변수를 읽어들여서 로그인하는 것처럼 하고 싶다면 su - userid 을 해줘야 한다.
su - 를 하면
su - root 를 하는 것과 같은 의미이다.
따라서 root 유저의 환경변수를 온전히 사용하고 싶다면 su - 를 사용해야 한다.
'리눅스' 카테고리의 다른 글
그룹 사용자 추가/삭제/변경 (0) | 2014.11.19 |
---|---|
리눅스 권한, 소유권자 하위 디렉토리 까지 바꾸기 chown (0) | 2014.11.11 |
파일내용 확인 : cat, head, tail, less (0) | 2014.11.07 |
VI 에디터 사용법 ★★ (0) | 2014.11.06 |
리눅스 기본과 기본명령어 (0) | 2014.11.05 |