가상화 및 서브 PC 활용

리눅스 사용자 권한 관리: sudo 권한 부여 및 그룹(Group) 제어 기초

content59998 2026. 11. 7. 15:17

다수의 사용자가 접속하여 사용하는 리눅스(Linux) 운영체제나 가상화 서버 환경에서는 사용자 권한 관리 및 보안 제어가 시스템 안정성을 결정짓는 가장 중요한 기준입니다. 최고 관리자인 root 계정의 권한을 모든 사용자에게 무분별하게 제공하거나 공유하면, 실수로 인한 시스템 파일 삭제, 잘못된 설정 변경, 혹은 악의적인 명령어 실행으로 인해 전체 서버가 마비되는 치명적인 장애가 발생할 수 있습니다.

이러한 보안 위험을 최소화하기 위한 가장 정석적인 방법은 일반 사용자 계정을 생성한 뒤, 꼭 필요한 관리자 명령만 선택적으로 실행할 수 있도록 sudo 권한을 제어하고, 사용자들을 목적에 맞게 그룹(Group)으로 묶어 파일 및 디렉터리 접근 권한을 관리하는 것입니다.

본 글에서는 리눅스 사용자 및 그룹 계정 체계의 기본 개념부터, 일반 계정에 안전하게 sudo 권한을 부여하는 방법, 그룹을 활용한 권한 제어 실전 명령어, 그리고 관리 시 준수해야 할 필수 보안 수칙까지 상세히 알아보겠습니다.

1. 리눅스 계정 체계와 sudo 및 그룹(Group)의 핵심 개념

리눅스는 다중 사용자(Multi-User) 시스템으로 설계되어 있으며, 계정의 권한 수준과 그룹 구조를 명확히 구분하여 보안을 유지합니다.

[이미지: 일반 사용자 계정이 sudo 명령어를 통해 관리자 권한을 안전하게 획득하고 그룹 권한에 따라 파일에 접근하는 구조도]

리눅스 권한 관리 시스템을 구성하는 핵심 요소는 다음과 같습니다.

  • root 계정과 일반 계정의 분리: root 계정은 시스템의 모든 파일과 프로세스를 제어할 수 있는 절대적인 권한을 가집니다. 따라서 일상적인 운영 환경에서는 root 계정으로 직접 로그인하지 않고, 일반 계정으로 작업하다가 필요한 순간에만 관리자 권한을 빌려 쓰는 방식이 권장됩니다.
  • sudo (SuperUser DO) 명령어: 일반 사용자가 자신의 비밀번호를 입력하여 일시적으로 root 관리자 권한으로 특정 명령어를 실행할 수 있게 해주는 보안 관리 도구입니다. root 비밀번호를 직접 공유하지 않아도 되므로 보안성이 비약적으로 향상됩니다.
  • 그룹(Group) 관리 체계: 여러 사용자 계정을 하나의 단위로 묶어 관리하는 기능입니다. 개발팀, 운용팀 등 부서나 역할별로 그룹을 생성하고 디렉터리 접근 권한을 그룹 단위로 부여하면, 개별 사용자마다 권한을 일일이 설정할 필요 없이 효율적인 제어가 가능해집니다.

2. 일반 계정에 sudo 권한 부여 및 sudoers 파일 설정법

새롭게 생성한 일반 사용자 계정에 sudo 명령어를 사용할 수 있는 자격을 부여하는 실전 단계입니다.

1.신규 사용자 계정 생성:root 권한 실행.

관리자 권한으로 신규 사용자 계정(예: devuser)을 생성하고 비밀번호를 지정합니다.

  • 계정 생성 명령어: sudo adduser devuser
  • Verification: id devuser 명령을 입력하여 해당 사용자 계정이 시스템에 정상 등록되었는지 검증합니다.
2.sudo 그룹에 사용자 추가:우분투/데비안 기준.

우분투 및 데비안 계열 리눅스에서는 sudo라는 이름의 기본 시스템 그룹에 사용자를 포함시키는 것만으로 손쉽게 관리자 권한을 부여할 수 있습니다.

  • 그룹 추가 명령어: sudo usermod -aG sudo devuser
  • (CentOS/RHEL 계열의 경우 sudo 대신 wheel 그룹을 지정합니다: sudo usermod -aG wheel devuser)
3.visudo 명령어를 통한 세부 권한 제어:고급 설정.

특정 사용자나 그룹에게 일부 명령어만 제한적으로 sudo 권한을 주거나, 비밀번호 입력 없이 실행하도록 설정할 때 사용합니다. 안전한 편집을 위해 반드시 전용 도구를 사용해야 합니다.

  • 설정 파일 편집 명령어: sudo visudo
  • 특정 명령어 패스워드 생략 구문 예시: devuser ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
  • Verification: 편집 완료 후 visudo 종료 시 구문 오류(Syntax Error) 경고가 발생하지 않는지 확인합니다.
4.sudo 권한 작동 테스트:계정 전환.

새로 만든 계정으로 전환하여 sudo 명령어 기능이 정상 작동하는지 검증합니다.

  • 계정 전환 명령어: su - devuser
  • 테스트 명령어: sudo apt update 또는 sudo systemctl status
  • Verification: 사용자 자신의 비밀번호를 입력했을 때 명령어가 문제없이 실행되는지 확인합니다.

3. 그룹(Group) 생성 및 소유권/권한 제어 실전 가이드

여러 사용자가 공동 작업 디렉터리를 공유하고 접근 제어를 적용할 때 사용하는 그룹 제어 실전 프로세스입니다.

[이미지: 리눅스 터미널 화면에서 chown 및 chmod 명령어를 이용해 디렉터리의 소유 그룹과 읽기/쓰기 접근 권한을 변경하는 장면]

그룹 관리 및 권한 설정 실전 명령어

  1. 신규 전용 그룹 생성 (groupadd)
    • 공동 프로젝트를 위한 새로운 전용 그룹(예: developers)을 생성합니다.
    • 명령어: sudo groupadd developers
  2. 기존 사용자를 해당 그룹에 추가 (usermod)
    • -aG (Append Group) 옵션을 사용하여 기존 소속 그룹을 유지한 채 새 그룹에 사용자를 보강 추가합니다.
    • 명령어: sudo usermod -aG developers devuser
  3. 디렉터리 소유자 및 소유 그룹 변경 (chown)
    • 특정 공유 디렉터리의 소유 그룹을 새로 만든 그룹으로 일괄 변경합니다.
    • 명령어: sudo chown -R root:developers /var/www/project
  4. 그룹 권한(Permission) 설정 (chmod)
    • 소유 그룹에 속한 사용자들에게 읽기, 쓰기, 실행 권한(rwx)을 부여합니다.
    • 명령어: sudo chmod -R 775 /var/www/project (소유자: 7, 그룹: 7, 기타사용자: 5)

자주 묻는 질문 (FAQ)

Q1. usermod -aG 명령을 실행할 때 -a 옵션을 누락하면 어떻게 되나요?

A1. 매우 주의해야 하는 부분입니다. -a (Append) 옵션 없이 usermod -G [그룹명] [사용자명] 명령을 실행하면 해당 사용자가 기존에 속해 있던 모든 2차 그룹(sudo 그룹 포함)에서 전원 탈퇴 처리되고 새로 지정한 그룹 하나만 남게 됩니다. 따라서 기존 권한이 박탈될 수 있으므로 기존 그룹 유지를 위해 반드시 -aG 옵션을 함께 사용해야 합니다.

Q2. visudo 대신 /etc/sudoers 파일을 직접 nano나 vi로 수정하면 안 되나요?

A2. /etc/sudoers 파일을 일반 텍스트 에디터로 직접 수정하다가 단 하나의 문법 오타(Syntax Error)라도 발생하면, 즉시 시스템 전체의 모든 sudo 명령어 사용이 불가능해지는 심각한 Lockout 상태에 빠지게 됩니다. visudo 명령어를 사용하면 파일을 저장하고 닫을 때 구문 검사를 자동으로 수행하여 오류가 있을 경우 적용을 거부하므로 반드시 visudo를 통해 수정해야 합니다.

Q3. 그룹에 사용자를 새로 추가했는데 여전히 그룹 권한이 적용되지 않고 접근 거부 오류가 뜹니다.

A3. 리눅스는 사용자가 로그인하는 시점에 그룹 권한 정보를 메모리에 로드합니다. 따라서 usermod로 새로운 그룹에 등록되었더라도, 현재 열려 있는 터미널 세션에는 즉시 반영되지 않습니다. 해당 사용자 계정을 로그아웃한 뒤 다시 재로그인하거나, 터미널 상에서 newgrp [그룹명] 명령어를 입력하여 그룹 권한을 즉각 갱신해야 정상 적용됩니다.

결론

다중 사용자가 사용하는 리눅스 서버 인프라를 안전하게 지키는 핵심 기틀은 체계적인 sudo 권한 부여와 효율적인 그룹(Group) 제어 정책에 있습니다.

절대 권한을 가진 root 계정의 직접 접근을 차단하고, 필요한 일반 사용자 계정에만 sudo 권한을 선택적으로 할당함과 동시에 그룹 단위 소유권(chown, chmod)을 정교하게 다루면 보안 사고와 오작동을 예방할 수 있습니다.

본 가이드의 명령어와 주의사항을 참고하여 여러분의 서버에 안전하고 체계적인 사용자 접근 제어 환경을 직접 구축해 보시기 바랍니다.