su / su - / sudo 명령어 차이
su (Switch User) 명령어
Switch User에서 알 수 있듯이, 현재 계정을 로그아웃하지 않고 다른 계정으로 전환하는 명령어 입니다.
$ su [계정명]
su 뒤에 변경할 사용자ID 를 입력하지 않는다면 su root와 동일하게 동작합니다.
$ su
Password:
# exit
logout
$
위처럼 일반계정쉘 $이 보이다가,
su root로 변경된 후 관리자계정쉘 #로 변경되는 것을 볼 수 있습니다.
su 명령어를 실행하게 되면 root 사용자의 비밀번호를 물어봅니다.
여기서 '-' 의 유무의 차이가 있습니다.
su는 root 계정의 환경 변수를 가져오지 않고, 현재 계정의 환경 변수를 사용합니다.
su 명령어 사용 시 옵션
-c : 쉘을 실행하지 않고, 주어진 명령만을 수행합니다.
-s : 지정된 셀로 로그인합니다.
-, -l : 지정한 사용자의 환경 변수를 적용하여 로그인합니다.
su - 명령어
$ su - [계정명]
su - 명령어는 다른 사용자의 환경 변수까지 적용하여 전환합니다.
su - 하시고 로그인을 하게 되면 기본 /root 디렉토리(directory)로 이동하게 됩니다. (환경 변수를 가져온다는 의미)
sudo (SuperUser DO) 명령어
SuperUser DO 에서 알 수 있듯이, 슈퍼 유저로 무언가를 수행한다는 의미를 가지고 있는 명령어 입니다.
$ su - [계정명]
현재 계정에서 단순히 root 의 권한 만을 빌리는 것입니다.
sudo 명렁어를 실행하게 되면 root 권한으로 명령어를 실행하게 됩니다.
즉, 하나의 명령에 대하여 일시적으로 root 권한을 사용하는 것을 말합니다.
실행하기 전 현재 사용자의 비밀번호를 물어봅니다.
예를 들어, 현재 사용자가 user1이고 root 권한으로 apt install 명령을 실행하려면 다음과 같이 명령을 실행합니다.
$ sudo apt install [패키지명]
su와 sudo의 차이점 정리
기능 | su | su- | sudo |
설명 | 현재 사용자를 다른 사용자로 전환 | 현재 사용자를 다른 사용자로 전환하며 대상 계정의 환경 변수까지 적용 | 일반 사용자에게 root 권한을 잠시 빌려줌 |
사용 방법 | su [계정명] | su - [계정명] | sudo [명령어] |
환경 변수 | 현재 사용자의 환경 변수 유지 | 대상 계정의 환경 변수 적용 | 현재 사용자의 환경 변수 유지 |
권한 | 대상 계정의 권한 | root 권한 | root 권한 |
계정의 전환 확인과 이전 계정으로 돌아가는 명령어
whoami
- 현재 사용자를 확인하는 명령어 입니다.
logout / exit
- 전환 전 계정으로 돌아가는 명령어 입니다.
출처:
'STUDY > SERVER OS' 카테고리의 다른 글
[Windows] Ping이란 (0) | 2023.10.13 |
---|---|
[Linux] 쉘과 쉘스크립트(.sh)에 대하여 (0) | 2023.10.13 |
[Server] 프로세스 / 데몬 / 서비스 개념 정리 (1) | 2023.10.05 |
[Ubuntu] jar 서비스(service) 등록·확인·시작·중지·재시작 방법 (0) | 2023.10.05 |
[Linux][Unix] 기본명령어 (0) | 2023.09.08 |