ioerror

visudo 사용법 및 옵션 - sudoers 설정 파일을 안전하게 수정하고 구문을 검증하는 관리 명령어 본문

OS

visudo 사용법 및 옵션 - sudoers 설정 파일을 안전하게 수정하고 구문을 검증하는 관리 명령어

반응형

visudo 사용법 및 옵션 - sudoers 설정 파일을 안전하게 수정하고 구문을 검증하는 관리 명령어

visudo - Visual Sudoers

리눅스 및 유닉스 시스템에서 /etc/sudoers 파일과 /etc/sudoers.d/ 디렉터리 내의 구성 파일들을 안전하게 편집하기 위한 전용 시스템 관리 명령어이다. 일반 텍스트 에디터로 직접 수정할 때 발생할 수 있는 동시 편집 충돌을 방지하기 위해 파일 잠금(Locking) 메커니즘을 수행하다. 편집을 마치고 저장할 때 작성된 문법 오류를 자동으로 검증하여, 문법 실수로 인해 sudo 권한 전체가 마비되거나 시스템 관리가 불가능해지는 사태를 사전에 차단하다. 기본 에디터로 vi 또는 지정된 시스템 환경변수의 에디터를 사용하며, 실행을 위해 root 권한이나 sudo 권한이 요구된다.

1. visudo 용도

  • 특정 사용자나 그룹에 root 권한 또는 특정 명령어 실행 권한 부여하다
  • /etc/sudoers 파일 편집 시 문법 오류를 자동 감지하여 시스템 잠금 사고 방지하다
  • 동시 접속 환경에서 여러 관리자가 설정 파일을 중복 수정하는 충돌 예방하다
  • 비밀번호 입력 없이 특정 명령어를 실행할 수 있도록 NOPASSWD 설정 적용하다

2. visudo 서식

Bash
 
visudo [옵션]

3. visudo 옵션

옵션 설명 사용가능 OS 및 쉘
-c, --check 파일을 수정하지 않고 구문 오류(Check)만 검증함 Linux, Unix
-f, --file /etc/sudoers 대신 지정한 파일의 구문을 수정하거나 검사함 Linux, Unix
-s, --strict 엄격한(Strict) 구문 검사를 수행함 Linux, Unix
-q, --quiet 오류 메시지만 출력하는 정적(Quiet) 모드로 실행함 Linux, Unix
-V, --version visudo의 버전 정보를 출력함 Linux, Unix
-h, --help 명령어 사용법 및 도움말을 출력함 Linux, Unix
Bash
 
# 1. 안전하게 /etc/sudoers 파일 편집
sudo visudo
# 잠금 파일을 생성하고 에디터를 실행함
# 저장 종료 시 구문 검사를 수행하며 오류가 없어야 최종 적용됨

# 2. 지정한 sudoers 서브 파일 구문 검사
sudo visudo -c -f /etc/sudoers.d/developers
# /etc/sudoers.d/developers: parsed OK

# 3. 별도 설정 파일 안전 수정
sudo visudo -f /etc/sudoers.d/developers
# 지정한 서브 설정 파일을 잠금 상태에서 수정 및 검증함
# /etc/sudoers.d/developers: parsed OK
  • /etc/sudoers.d/developers: parsed OK: -c 옵션을 통해 대상 파일의 문법적 이상 유무를 사전 판별한 결과 출력을 의미하다

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

  • /etc/sudoers 파일을 일반 vi나 nano로 직접 수정하면 문법 오류가 발생했을 때 sudo 명령어 자체가 동작하지 않아 root 권한을 완전히 잃을 수 있다. 따라서 반드시 visudo를 사용해야 하다.
  • Stack Overflow에서 가장 자주 질문되는 내용은 에디터 변경 방식이다. 기본 에디터를 nano 등으로 바꾸려면 sudo EDITOR=nano visudo 명령을 실행하거나 /etc/sudoers 내에 Defaults editor=/usr/bin/nano 설정을 명시해야 하다.
  • 편집 후 저장 시 구문 오류가 발견되면 >>> /etc/sudoers: syntax error near line ... <<< 메시지와 함께 처리 옵션(e디터 재진입, x저장 없이 종료, Q강제 저장)을 묻는다. 이때 절대 Q를 누르지 말고 e를 눌러 오류를 수정해야 하다.
  • 우분투 등 최신 리눅스 배포판에서는 /etc/sudoers 파일 본문을 직접 고치기보다 /etc/sudoers.d/ 디렉터리 안에 전용 설정 파일을 생성하여 visudo -f /etc/sudoers.d/파일명으로 관리하는 방식을 권장하다.

관련 명령어들

  • sudo: 다른 사용자(주로 root)의 권한으로 명령을 실행함
  • su: 다른 사용자 계정으로 전환함
  • vipw: /etc/passwd 및 /etc/shadow 파일을 안전하게 수정함
  • vigr: /etc/group 파일을 안전하게 수정함
  • whoami: 현재 로그인된 실효 사용자 이름을 확인함

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

 

UNIX & Linux Command Reference

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

ioerror.tistory.com

 

 

반응형
Comments