리눅스마스터2급강좌 : 사용자 변경 su
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,915 조회
- 0 추천
- 목록
본문
리눅스마스터2급강좌 : 사용자 변경 su
사용자 변경 : su
리눅스 서버로 로그인하여 시스템을 사용하는 중에 다른 계정의 권한이 필요한 경우에 su 명령을 이용하여 리눅스 쉘 상태에서 바로 다른 사용자로 교체할 수 있다.
su는 “Substitute User”의 약어로서 이와 같이 다른 계정 사용자로 교체할 때 사용하는 명령어이다.
특히, 네트워크로 시스템에 접속할 때는 항상 일반 계정으로 접속하는 것이 보안상 안전하다.
이에 따라 SSH 등의 경우(SSH의 경우에는 root 접속이 가능)를 제외하면 거의 대부분 시스템에 root로 접속할 수 없도록 기본 설정되어 있다(물론 바꿀 수도 있지만 보안상 권장하지 않는다). 이 때 시스템을 관리하기 위해서 su 명령을 사용한다.
su 뒤에 아무것도 붙이지 않고 su 명령만 내리면 root 계정으로 변경된다.
즉, root 계정으로 변경하기 위해서는 su 뒤에 사용자명을 적지 않고 명령을 내리면 된다.
|
|
|
| [sulinuxer@localhost ~]$ su 암호: ******** [root@localhost sulinuxer]# pwd /home/sulinuxer [root@localhost sulinuxer]# |
|
|
|
|
이때 실행되는 쉘은 지정된 사용자의 패스워드파일에서 찾아오거나 없으면 /bin/sh를 수행한다.
그리고 만약 사용자의 패스워드가 있다면 su는 root로 로그인된 상태가 아닌 한 패스워드를 물어온다.
기본적으로, su 명령을 내리면 현재 디렉토리가 변경되지 않고, /etc/passwd 파일에서 사용자에 대한 환경변수인 ‘HOME’, ‘SHELL’ 등을 설정하며, 만약 수퍼유저인 경우가 아니라면 사용자는 지정된 사용자(USER)와 로그인 이름(LOGNAME)의 사용자로 설정한다.
그렇지만 기본적으로 이 쉘은 해당 사용자의 로그인 쉘이 아니다.
만약 한 개 이상의 인수가 주어지면 쉘에 대한 인수로 전달된다.
su 는 /bin/sh나 다른 쉘을 지정하여 사용하도록 하지는 않지만, -s 옵션으로 특정 쉘을 지정하는 경우에는 해당 사용자는 지정된 쉘을 사용한다.
그리고 'su -' 라고 하여 root 환경으로 전환하면 root의 환경 변수가 반영된다.
물론, 일반 사용자의 경우에도 “su – 사용자명”으로 명령을 내리면 변경된 사용자에 대해 그 사용자의 환경변수가 반영된다(사용자명에 root를 기재하면 root로 변경된다).
|
|
|
| [sulinuxer@localhost ~]$ su - 암호: ******** [root@localhost ~]# |
|
|
|
|
만약 root 사용자가 일반 계정으로 변경하는 경우라면, 특별히 해당 사용자의 패스워드를 묻지 않고 그대로 해당 사용자로 변경된다.
|
|
|
| [root@localhost ~]# su - sulinuxer [sulinuxer@localhost ~]$ |
|
|
|
|
일반 사용자가 다른 일반 사용자로 변경할 때에도 위와 같이 명령을 내리면 된다.
이때는 root 사용자가 일반 계정으로 변경하는 경우와 달리 패스워드를 입력해야 한다.
|
|
|
| [freekgb@localhost ~]$ su - sulinuxer 암호: ******** [sulinuxer@localhost ~] |
|
|
|
|
관련자료
-
이전
-
다음