리눅스 관리에서 중요한 명령어인 sudo와 su는 각각 특정 명령 실행과 사용자 전환을 목적으로 사용된다.
이 글에서는 두 명령의 특징과 사용법을 정리했다.
sudo 명령어
sudo란?
- "superuser do"의 약자로, 현재 사용자 비밀번호를 입력하여 관리자 권한으로 특정 명령을 실행한다.
- 보안성을 유지하면서 필요한 작업만 관리자 권한으로 실행할 수 있게 설계되었다.
sudo의 주요 특징
- 권한 제한 : 특정 명령만 관리자 권한으로 실행 가능.
- 안전성 : 관리자 비밀번호 대신 사용자 비밀번호를 사용하며 로그로 기록됨.
- 시간 제한 : 인증 후 기본 5분 동안 추가 인증 없이 사용 가능 (설정 변경 가능).
- 로그 기록 : 실행 기록은 /var/log/auth.log 또는 /var/log/secure 에 저장
sudo 사용법
1. 명령어 실행
sudo 명령어
- 예시 : 시스템 업데이트
sudo apt update
2. 특정 사용자 권한으로 실행
sudo -u 사용자이름 명령어
- 예시 : hong 사용자로 /home/hong 디렉토리 확인
sudo -u hong ls /home/hong
3. 루트 사용자 권한으로 셸 실행
sudo -i
4. 환경 변수 유지
sudo -E 명령어
- 현재 사용자의 환경 변수를 유지하며 실행.
sudo 주요 옵션
옵션 | 설명 |
-u | 특정 사용자로 명령 실행. 기본값은 root. |
-i | 로그인 셸로 전환(루트 환경 변수 적용). |
-E | 현재 사용자의 환경 변수 유지. |
-k | 인증 기록 삭제(다시 비밀번호 입력 필요). |
-b | 명령을 백그라운드에서 실행. |
-l | 실행 가능한 명령 목록 출력. |
sudo와 sudoers 파일
1. sudoers 파일 수정
- / etc/sudoers 파일은 sudo 권한을 제어하며, 반드시 visudo 명령을 통해 수정해야 한다.
sudo visudo
2. sudoers 파일 예시
사용자 ALL=(ALL:ALL) 명령
- ALL=(ALL:ALL): 모든 사용자와 그룹에 대해 권한 적용.
- 예시 :
// 특정 사용자에게 모든 명령 허용
hong ALL=(ALL:ALL) ALL
// 비밀번호 없이 실행 허용
hong ALL=(ALL:ALL) NOPASSWD: ALL
sudo 사용 사례
1. 파일 복사
sudo cp myfile /etc/myconfig/
2. 패키지 설치
sudo apt install vim
3. 서비스 관리
sudo systemctl start apache2
4. 사용자 계정 추가
sudo useradd -m -s /bin/bash newuser
su 명령어
su란?
- "substitute user" 또는 "switch user"의 약자로, 사용자 계정 전환이나 권한 승격을 목적으로 사용됩니다.
- 주로 관리자(root) 계정으로 전환하거나 특정 사용자 권한으로 작업할 때 사용합니다.
su 기본 사용법
1. 사용자 전환
su [사용자이름]
- 예시 : hong 사용자로 전환
su hong
2. 루트 계정으로 전환
su
3. 환경 설정 유지하며 전환
su - [사용자이름]
4. 특정 명령 실행
su -c "명령어" [사용자이름]
- 예시 :
su -c "ls /root" root
su 주요 옵션
옵션 | 설명 |
- | 전환된 사용자의 환경 변수와 홈 디렉토리 적용. |
-l | -와 동일. |
-c | 특정 명령 실행 후 종료. |
-s | 특정 셸 실행. |
su 사용 시 주의사항
1. su 접근 제한
- 특정 사용자만 su를 실행하도록 설정하려면 wheel 그룹을 활용한다.
sudo usermod -aG wheel 사용자이름
2. 로그 기록 확인
- /var/log/auth.log에 기록된 su 사용 내역 확인 :
sudo cat /var/log/auth.log | grep 'su'
3. 루트 계정 비밀번호 관리
- su로 루트 계정 접근 시 비밀번호가 필요하므로, 정기적으로 변경하는 것이 중요하다.
sudo passwd root
sudo와 su의 차이점
구분 | sudo | su |
목적 | 특정 명령만 관리자 권한으로 실행 | 사용자 계정 전환 및 전체 권한 획득 |
비밀번호 | 현재 사용자 비밀번호 | 전환할 사용자의 비밀번호 |
권한 제어 | sudoers 파일로 세부 설정 가능 | 특정 사용자 제한이 어려움 |
로그 기록 | 명령 로그 기록 가능 | 기본적으로 활동 기록 없음 |
사용 범위 | 명령 실행 시에만 권한 부여 | 셸 전체에서 권한 유지 |
sudo와 su 사용 흐름
현재 사용자
다른 사용자
현재 사용자
보안 팁
1. 최소 권한 원칙 적용
- /etc/sudoers를 활용해 최소한의 명령만 sudo로 실행 가능하도록 설정.
2. 비밀번호 없이 실행 제한
- 비밀번호 입력을 요구해 보안을 강화
3. 로그 모니터링
- /var/log/auth.log를 주기적으로 확인하여 비정상적인 활동 탐지.
'Linux' 카테고리의 다른 글
리눅스 프로세스 관리 (ps, top, kill..) (0) | 2025.01.22 |
---|---|
리눅스 사용자 권한 (chmod, chown, chgrp) (0) | 2025.01.21 |
리눅스 사용자 계정 (0) | 2025.01.21 |
리눅스 디렉토리 계층 구조 (0) | 2025.01.19 |
가상화(Virtualization) (0) | 2025.01.19 |