| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- command
- 권한상승
- IT
- iostat
- nohup
- 스트림에디터
- 하드링크
- 리눅스
- 턱스
- Linux
- Tux
- sed
- uname
- printworkingdirectory
- 모니터링
- 코드블럭
- pkill
- vmstat
- 명령어
- disown
- 심볼릭링크
- 커널패닉
- 디스크
- bg
- mkdir
- remove
- os-release
- 텍스트
- CodeBlock
- su
- Today
- Total
Snow flake
[command] su, sudo 명령어 본문
su와 sudo는 둘 다 다른 사용자 권한으로 명령어를 실행할 때 사용하는 명령어입니다. 비슷해 보이지만 동작 방식에 분명한 차이가 있어서, 실무에서 헷갈리기 쉬운 명령어 중 하나입니다.
su (Switch User)
su는 Switch User의 약자로, 현재 로그인된 사용자를 다른 사용자로 전환할 때 사용합니다.
# 사용법
su [사용자명]
# root 계정으로 전환 (사용자명 생략 시 기본값은 root)
su
# oracle 계정으로 전환
su oracle
# oracle 계정으로 전환하면서 해당 계정의 환경변수까지 적용
su - oracle
su만 입력하면 root로 전환되고, su oracle처럼 사용자명을 지정하면 해당 계정으로 전환됩니다. 이때 대상 계정의 비밀번호를 입력해야 전환이 됩니다.
su와 su -의 차이도 중요합니다. su oracle은 현재 쉘의 환경변수를 그대로 유지한 채 사용자만 바뀌지만, su - oracle은 oracle 계정으로 완전히 새로 로그인한 것처럼 환경변수(PATH, HOME 등)까지 전부 oracle 계정 기준으로 새로 설정됩니다.
sudo (Superuser Do)
sudo는 Superuser Do의 약자로, 현재 로그인된 사용자 권한을 유지한 채 특정 명령어 하나만 다른 사용자(주로 root) 권한으로 실행할 때 사용합니다.
# 사용법
sudo [명령어]
# root 권한으로 파일 삭제
sudo rm /var/log/old.log
# root 권한으로 파일 편집
sudo vi /etc/hosts
# 특정 사용자 권한으로 명령어 실행
sudo -u oracle ls /u01/app/oracle
sudo를 사용하려면 /etc/sudoers 파일에 해당 계정이 sudo 권한을 쓸 수 있도록 미리 등록되어 있어야 합니다. 등록되어 있지 않으면 is not in the sudoers file 같은 오류가 발생합니다.
su와 sudo의 차이
- su: 계정을 통째로 전환. 전환 이후에는 계속 그 계정 권한으로 작업하게 됨. 대상 계정의 비밀번호 필요
- sudo: 계정 전환 없이, 명령어 하나만 관리자 권한으로 실행. 실행 후에는 다시 원래 계정 권한으로 돌아옴. 본인 계정 비밀번호만 필요 (대상 계정 비밀번호 몰라도 됨)
보안 측면에서는 sudo가 더 안전하다고 평가됩니다. su는 root 비밀번호 자체를 알아야 하고 한번 전환되면 계속 root로 작업하게 되는 반면, sudo는 필요한 명령어만 그때그때 권한을 부여받는 방식이라 실수로 잘못된 명령어를 root 권한으로 실행할 위험이 상대적으로 적습니다.
실무에서 자주 마주치는 상황
DB 설치나 운영 작업을 하다 보면 oracle 계정으로 전환해서 작업해야 하는 경우가 많습니다.
# oracle 계정으로 완전히 전환해서 작업
su - oracle
# 전환 후 oracle 계정 기준 환경변수 확인
env | grep ORACLE
# root 권한이 필요한 작업만 잠깐 처리할 때
sudo systemctl restart oracle-db
계정을 통째로 옮겨가며 작업할 때는 su -, root 권한이 필요한 명령어 하나만 처리하고 다시 원래 계정으로 돌아오고 싶을 때는 sudo를 쓰는 식으로 상황에 맞게 구분해서 사용하면 됩니다.
'Programming > Linux' 카테고리의 다른 글
| [command] find 명령어 (0) | 2026.09.10 |
|---|---|
| [command] grep 명령어 (0) | 2026.09.09 |
| [command] chown 명령어 (1) | 2026.09.08 |
| [command] chmod 명령어 (0) | 2026.09.06 |
| [command] less 명령어 (0) | 2022.11.02 |
