명령어
- su (Switch User) : 쉘 사용 유저 변경
- -c : 쉘을 실행 하지 않고 주어진 명령만 수행
- -s : 지정된 쉘로 유저 변경
- -, -l : 변경될 사용자의 환경 변수까지 적용하여 로그인, pwd위치도 홈디렉토리
- sudo (Super User DO) : 계정을 바꾸지 않고 Root계정의 권한으로 명령어 1회 실행, 비밀번호 요구
설명
리눅스에서 실행권한에 따라서 해당 작업을 하지 못하는 경우가 존재한다. 따라서 권한을 갖고 있는 유저로 로그인 하거나 권한을 빌려서 작업을 하는 경우가 있는데 위의 두 명령어는 그 때 사용하는 명령어 이다
sudo 명령어의 경우 간단하게 뒤에 실행할 명령어를 root의 권한으로 실행하는것으로 특이한 점은 없고 실행히 비밀번호를 요구한다는 점만 기억하면 좋을것 같다.
su 명령어의 경우 새로운 유저로 변경하여 쉘에 접속할때 사용 하는 명령어다.
또한 su 명령어의 경우 옵션이 다양한데 가장 중요하다고 생각되는 -, -l 옵션을 살펴보자
두개의 옵션 동일한 옵션이고 전환하고자 하는 사용자의 환경변수를 불러온다는 점이 가장 큰 사용 이유다.
먼저 테스트를 위해 root계정에서는 SUTEST 라는 환경변수를 만들고 ROOT 라는 값을 저장하고 kys계정에서는 SUTEST라는 환경변수에 KYS라는 값일 저장하고 시작한다고 가정한다.
su kys
root) echo $SUTEST
ROOT
root) su kys
kys) echo $SUTEST
ROOT
위와 같이 root에서 환경변수는 ROOT라는 값이 호출되었지만 su 명령어를 통해 사용자를 전환했을때도 동일한 ROOT라는 값을 호출 하는 것을 확인 할 수 있다.
환경변수가 kys의 환경변수를 사용하는것이 아닌 root의 환경변수를 사용하기 때문이다.
su - kys
root) echo $SUTEST
ROOT
root) su - kys
kys) echo $SUTEST
KYS
- 옵션 또는 -l 옵션을 사용해서 사용자를 전환 할 경우 전환하는 사용자의 환경변수를 불러오기 때문에 KYS라는 값을 잘 호출 한 것을 확인 할 수 있다.
위와같은 차이점은 간단하지만 모르고 있다면 중요한 문제에 직면 할 수 있기 때문에 반드시 기억하고 알아두면 좋을것같다~!
'Linux' 카테고리의 다른 글
[Linux 명령어] CentOS / Ubuntu 방화벽 설정 (firewalld, ufw) (0) | 2022.03.15 |
---|---|
[Linux 명령어] update-alternatives 손쉬운 자바 버전 변경 (0) | 2022.03.15 |