Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Linux 팁: visudo로 sudoers 파일을 안전하게 편집하여 치명적인 실수 방지하기

이 글에서는 visudo를 사용해 sudoers 파일을 편집하여 사용자에게 root 권한을 부여하는 방법을 소개합니다. 동시에, 사소한 실수로 인해 Linux 시스템에 영구적으로 접근하지 못하는 최악의 상황을 예방하는 요령도 함께 정리했습니다.

sudoers 파일이란?

sudoers 파일은 Linux 시스템에서 어떤 사용자가 sudo 명령어를 사용할 수 있는지를 정의하는 파일입니다. 파일 위치는 다음과 같습니다.

/etc/sudoers

파일을 열면 대략 다음과 같은 내용이 담겨 있습니다.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

sudo 명령어란?

sudo 명령어는 권한이 부여된 사용자가 다른 사용자의 권한으로 명령을 실행할 수 있게 해줍니다. 기본적으로는 root 권한으로 실행되며, 이것이 바로 sudo의 핵심 목적입니다. 덕분에 root 계정으로 직접 로그인하지 않고도 관리자 작업을 수행할 수 있습니다.

root로 직접 로그인하지 않고 sudo를 쓰는 이유는?

답은 보안입니다. sudo로 명령을 실행하면 그 명령 하나에만 root 권한이 부여됩니다. 즉, 필요한 순간에만 명시적으로 권한을 허용하는 방식입니다. 반면 root로 로그인한 상태에서는 실행하는 모든 명령이 높은 권한으로 돌아가기 때문에, 스크립트가 접근해서는 안 되는 파일에 접근하거나 사소한 오타 하나로 시스템 전체가 손상될 위험이 커집니다.

visudo – sudoers 파일을 안전하게 편집하는 도구

사용자가 sudo 명령어를 쓸 수 있는지 여부는 전부 sudoers 파일이 결정합니다. 따라서 이 파일을 편집할 때는 각별히 신중해야 합니다. 설정이 잘못되거나 오타가 하나라도 들어가면 모든 사용자가 sudo 명령어를 아예 사용할 수 없게 될 수 있고, 이는 곧 root 권한 상실, 나아가 자신의 시스템에 접근조차 못 하는 상황으로 이어질 수 있습니다.

visudo는 바로 이런 위험을 줄여주는 프로그램입니다. 저장하기 전에 파일에 문법 오류가 없는지 검사해 주므로, 단순한 실수가 sudo 접근권 전체를 잠그는 사태로 번지는 것을 막아줍니다.

visudo로 sudoers 파일 편집하기

visudo로 sudoers 파일을 안전하게 편집하려면 관리자 권한으로 실행하면 됩니다.

sudo visudo

그러면 visudo가 시스템에 설정된 기본 텍스트 편집기로 sudoers 파일을 열어줍니다.

sudoers 파일의 문법

sudoers 파일 작성 문법에 대한 자세한 내용은 공식 매뉴얼 페이지(sudoers(5))에서 확인할 수 있습니다.

visudo & sudoers 안전 수칙

단, visudo모든 오류를 잡아주는 것은 아닙니다. 파일의 문법적 오류는 검증할 수 있지만, 내용 자체가 틀린 경우까지 판단하지는 못합니다.

즉, 형식이 잘못된 설정은 잡아내지만, 사용자 이름을 잘못 입력한 것은 알아채지 못한다는 뜻입니다.

다음 세 가지 수칙은 visudo가 감지하지 못하는 유형의 실수를 줄이는 데 큰 도움이 됩니다.

1. 나만의 sudoers 설정 파일 만들기

기본 sudoers 설정 파일을 직접 수정하는 대신, 별도의 설정 파일을 추가로 만들어 보완하는 방식을 권장합니다.

먼저 visudo로 기본 /etc/sudoers 파일을 연 뒤, 아래 줄의 주석(#)을 제거해 활성화합니다.

#includedir /etc/sudoers.d

이렇게 하면 시스템이 /etc/sudoers.d/ 경로에서 추가 설정을 함께 불러오므로, 기본 설정 파일은 그대로 둔 채 이 디렉터리 안에서 변경 작업을 진행할 수 있습니다.

새 설정 파일을 생성하고 편집하려면 다음과 같이 실행하세요.

sudo visudo -f /etc/sudoers.d/mysudoersconfig

2. 별도의 터미널 또는 원격 세션을 열어두기

sudo 권한을 변경할 때는, sudo 권한이 있는 사용자로 로그인된 터미널 세션을 하나 미리 열어두세요. 변경 사항을 바로 테스트해볼 수 있고, 설령 무언가를 잘못 건드렸더라도 그 세션은 sudo 권한을 그대로 유지하고 있으므로 이를 통해 설정을 되돌릴 수 있습니다.

3. 시스템 백업하기

정기적인 백업은 선택이 아니라 필수입니다. 시스템을 망치는 주체가 반드시 당신일 필요는 없습니다. 잘못된 업데이트, 정전, 침입자 등 어떤 변수든 언제든 발생할 수 있습니다. 평소에 시스템을 백업해두면 변경 작업을 마음껏 진행하면서도, 문제가 생겼을 때 언제든 복구할 수 있다는 안정감을 얻을 수 있습니다.