su (Substitute User / Switch User)
su는 현재 로그아웃하지 않고 다른 사용자의 계정으로 전환하거나, 특히 시스템 관리자 권한인 root 계정으로 전환할 때 사용하는 명령어입니다.
1. 기본 사용법
su [옵션] [사용자명]
- 사용자명을 입력하지 않으면 기본적으로 root 계정으로 전환을 시도합니다.
- 전환하려는 대상 계정의 비밀번호를 입력해야 합니다.
2. 주요 옵션 및 차이점
| 옵션 | 이름 | 설명 |
|---|---|---|
-, -l |
login | 로그인 셸. 대상 사용자의 환경 변수(PATH, 홈 디렉터리 등)를 그대로 가져옵니다. (가장 권장됨) |
-c |
command | 계정을 전환하지 않고, 해당 사용자의 권한으로 명령어 하나만 실행합니다. |
-s |
shell | 지정한 특정 셸(예: /bin/sh)을 사용하여 계정을 전환합니다. |
3. 실무 활용 예시
① root 계정으로 완벽하게 전환 (환경 변수 포함)
가장 많이 사용되는 형태입니다. 하이픈(-)을 붙여야 root의 설정 파일(.bashrc 등)이 적용됩니다.
su -
② 특정 일반 사용자로 전환
su - kim
③ root 권한으로 명령어 딱 하나만 실행하기
su -c "apt update"
4. [중요] su vs sudo 차이점
- su (Substitute User):
- 대상 계정(주로 root)의 비밀번호를 알아야 합니다.
- 계정 자체를 완전히 갈아타는 느낌입니다.
- sudo (Substitute User Do):
- 현재 로그인한 본인의 비밀번호를 사용합니다.
- 특정 명령어만 관리자 권한으로 빌려서 실행하는 느낌입니다. (보안상 더 권장됨)