ioerror

sudo 사용법 및 옵션 - 다른 사용자(주로 root)의 권한으로 명령을 안전하게 실행하는 명령 본문

OS

sudo 사용법 및 옵션 - 다른 사용자(주로 root)의 권한으로 명령을 안전하게 실행하는 명령

반응형

sudo - Superuser Do

현재 로그인된 일반 사용자 계정에서 root(최고 관리자) 또는 다른 사용자의 권한을 일시적으로 빌려 특정 명령을 실행하는 유닉스 및 리눅스의 표준 권한 관리 명령어이다. root 계정의 비밀번호를 직접 공유하지 않고도 /etc/sudoers 설정 파일에 지정된 권한 정책에 따라 개별 명령별 실행 권한을 제어할 수 있다. 작업 내역이 시스템 로그(/var/log/auth.log 또는 /var/log/secure)에 엄격히 기록되므로 보안 및 감사 관리에 매우 중요한 역할을 한다.

1. sudo 용도

  • 일반 계정 상태에서 패키지 설치, 시스템 서비스 재시작, 네트워크 설정 변경 등 관리자 권한이 필수적인 단일 작업을 수행할 때 사용된다.
  • root 비밀번호를 노출하지 않고 특정 일반 사용자나 그룹에게 일부 관리자 명령(e.g., systemctl restart nginx)만 제한적으로 허용할 때 주로 활용된다.

2. sudo 서식

sudo [OPTIONS...] [COMMAND [ARG...]]

3. sudo 옵션

옵션 설명 사용가능 OS 및 쉘
-u user, --user=user root가 아닌 지정한 다른 사용자 계정의 권한으로 명령을 실행한다. 모든 유닉스/리눅스
-i, --login target 사용자(기본값: root)의 로그인 셸을 시작하여 해당 환경 변수 및 홈 디렉터리를 적용한다. 모든 유닉스/리눅스
-s, --shell SHELL 환경 변수에 지정된 대화형 셸을 target 사용자의 권한으로 실행한다. 모든 유닉스/리눅스
-k, --reset-timestamp 캐시된 사용자 패스워드 인증 타임아웃을 즉시 만료시켜 다음 sudo 실행 시 비밀번호를 다시 묻게 만든다. 모든 유닉스/리눅스
-v, --validate 비밀번호를 입력받아 인증 타임아웃 기간을 갱신하지만, 특정 명령을 실행하지는 않는다. 모든 유닉스/리눅스
-l, --list 현재 사용자가 sudo를 통해 실행할 수 있는 허용된 명령어 목록을 출력한다. 모든 유닉스/리눅스
-b, --background 지정한 명령을 백그라운드 프로세스로 실행한다. 모든 유닉스/리눅스
-E, --preserve-env 현재 사용자 셸의 환경 변수(Environment Variables)를 유지한 채 명령을 실행한다. Linux Sudo 1.7+
-e, --edit 지정한 파일을 root 권한으로 안전하게 편집한다 (sudoedit의 동의어). 모든 유닉스/리눅스
 
# Nginx 웹 서버 서비스 재시작
sudo systemctl restart nginx

# 현재 사용자에게 허용된 sudo 명령어 목록 조회
sudo -l
# Matching Defaults entries for user on server:
#     env_reset, mail_badpass
#
# User user may run the following commands on server:
#     (ALL : ALL) ALL

# www-data 서비스 계정 권한으로 특정 파이썬 스크립트 실행
sudo -u www-data python3 app.py
  • (ALL : ALL) ALL: 현재 사용자가 모든 호스트, 모든 사용자/그룹 권한으로 모든 명령을 실행할 수 있음을 나타낸다.

4. sudo 특이사항(유의사항)

  • sudo 실행 시 입력하는 비밀번호는 root 계정의 비밀번호가 아니라 현재 로그인된 본인 계정의 비밀번호이다.
  • 리다이렉션 사용 시 주의: sudo echo "text" > /etc/protected_file 구문을 실행하면, echo 명령만 root 권한으로 실행되고 파일 쓰기(>) 리다이렉션은 현재 일반 사용자의 권한으로 처리되어 Permission denied 에러가 발생한다. 이를 해결하려면 echo "text" | sudo tee /etc/protected_file 방식을 사용해야 한다.
  • 인증 타임아웃(Default Timeout): 기본 설정상 한번 비밀번호를 인증하면 기본 15분 동안 비밀번호 재입력 없이 sudo를 계속 사용할 수 있다.

관련 명령어들

  • su: 다른 사용자 계정으로 완전히 전환하여 새 셸을 개시한다.
  • sudoedit: root 권한이 필요한 안전한 파일 편집을 제공한다.
  • visudo: /etc/sudoers 파일을 구문 오류 없이 안전하게 수정하는 전용 에디터 실행 명령이다.
  • whoami: 현재 셸을 실행 중인 유효 사용자(Effective User)명을 확인한다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

 

 

반응형
Comments