-
su와 su - 명령어 차이System/Unix 2019. 5. 11. 17:15
su와 su - 명령어 차이
Ⅰ. SU 명령어란?
SU는 Substitute User의 줄임말로 현재 사용자를 로그아웃 하지 않고, 다른 사용자의 권한을 획득할 때 사용된다.
일반적으로 패키지를 설치, 시스템 설정 파일 수정, 신규 사용자 추가 등과 같은 관리 작업을 수행하기 위해 사용자의 권한을 root로 변경하는데 이용된다.
Ⅱ. SU 명령어 사용법
1. su [변경하고자 하는 계정명]
[변경하고자 하는 계정명]의 권한을 임시로 빌려온 형태로, 환경변수를 일부만 가져온다. 즉, 기존 사용자 환경이 어느 정도 유지된 상태이므로 로그아웃(logout)은 할 수 없다.
ex) $ su rootex) # logout
2. su - [변경하고자 하는 계정명]
SU 뒤에 오는 ‘-‘ 는 ‘-l’ 또는 ‘--login’과 동일한 명령어로, 해당 명령어를 이용하면 사용자의 환경변수 및 작업 디렉터리 영향을 미친다.
ex1) $ su - root
ex2) $ su -l root
ex3) $ su --login root
ex4) # logout
Ⅲ. SU 와 SU - 명령어 비교
다음 표와 같이 ‘-‘의 유무의 차이는 환경변수와 작업 디렉터리에 영향을 준다.
구분 SU SU - 환경변수 TERM 변경 변경 HOME 변경 변경 SHELL 변경 변경 USER 변경 변경 LOGNAME 변경 변경 PATH 유지 Default 값 기타 유지 초기화 작업 디렉터리 유지 변경 1. PATH 환경변수 비교
1) SU root 명령어를 통한 실습
① (SU 명령어 사용 전) 일반 사용자의 PATH 환경변수 확인
② (SU 명령어 사용 후) root의 PATH 환경변수 확인
→ ①, ②번 실습을 통해 ‘SU’ 명령어 사용 시 PATH 환경변수가 변하지 않음을 확인함
2) SU - root 명령어를 통한 실습
① (SU - 명령어 사용 전) 일반 사용자의 PATH 환경변수 확인
② (SU - 명령어 사용 후) root의 PATH 환경변수 확인
→ ①, ②번 실습을 통해 ‘SU -’ 명령어 사용 시 PATH 환경변수가 변경됨을 확인함
2. 기타 환경변수 비교
일반 사용자 계정(bhkim)으로 임의의 환경변수(hello=world)를 생성한 후, ‘SU’와 ‘SU -' 명령어를 이용하여 생성한 임의의 환경변수의 존재 여부를 확인할 것이다.
- 임의의 환경변수(hello=world) 생성
1) SU root 명령어를 통한 실습
① (SU 명령어 사용 전) 일반 사용자의 임의의 환경변수(hello) 확인
② (SU 명령어 사용 후) root의 임의의 환경변수(hello) 확인→ ①, ②번 실습을 통해 ‘SU’ 명령어 사용 시 임의로 생성한 Hello 환경변수가 변하지 않음을 확인함
2) SU - root 명령어를 통한 실습
① (SU - 명령어 사용 전) 일반 사용자의 임의의 환경변수(hello) 확인
② (SU - 명령어 사용 후) root의 임의의 환경변수(hello) 확인
→ ①, ②번 실습을 통해 ‘SU -’ 명령어 사용 시 임의로 생성한 Hello 환경변수가 초기화됨을 확인함
3. 작업 디렉터리 경로 비교
일반 사용자 계정(bhkim)의 작업 디렉터리 경로 확인 후, ‘SU’와 ‘SU -' 명령어를 통해 작업 디렉터리의 변경 여부를 확인할 것이다.
1) SU root 명령어를 통한 실습
① (SU 명령어 사용 전) 일반 사용자의 현재 작업 디렉터리 경로(/tmp) 확인
② (SU 명령어 사용 후) root의 현재 작업 디렉터리 경로(/tmp) 확인
→ ①, ②번 실습을 통해 ‘SU’ 명령어 사용 시 작업 디렉터리 경로가 변경되지 않음을 확인함
2) SU - root 명령어를 통한 실습
① (SU - 명령어 사용 전) 일반 사용자의 현재 작업 디렉터리 경로(/tmp) 확인
② (SU - 명령어 사용 후) root의 현재 작업 디렉터리 경로(/tmp) 확인
→ ①, ②번 실습을 통해 ‘SU -’ 명령어 사용 시 변경한 사용자 계정(root)의 홈 디렉터리(/root)로 변경됨을 확인함
4. 결론
위에 실습에서 살펴봤듯이 ‘SU’와 ‘SU -‘ 명령어의 가장 큰 차이는 환경변수(PATH, 기타 임의의 환경변수)와 작업 디렉터리의 변경 유무임을 확인할 수 있었다.
'System > Unix' 카테고리의 다른 글
netstat 명령어 사용 시, ipv4와 ipv6 표현 차이 (0) 2020.03.03