ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • su와 su - 명령어 차이
    System/Unix 2019. 5. 11. 17:15

    su와 su - 명령어 차이

    Ⅰ. SU 명령어란?

    SU Substitute User의 줄임말로 현재 사용자를 로그아웃 하지 않고, 다른 사용자의 권한을 획득할 때 사용된다

    일반적으로 패키지를 설치, 시스템 설정 파일 수정, 신규 사용자 추가 등과 같은 관리 작업을 수행하기 위해 사용자의 권한을 root로 변경하는데 이용된다.

     

     

    Ⅱ. SU 명령어 사용법

    1. su [변경하고자 하는 계정명]

    [변경하고자 하는 계정명]의 권한을 임시로 빌려온 형태로, 환경변수를 일부만 가져온다. 즉, 기존 사용자 환경이 어느 정도 유지된 상태이므로 로그아웃(logout)은 할 수 없다.


    ex) $ su root

     

    ex) # 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

    댓글

Designed by Tistory.