Aller au contenu principal

72. Manage User Privileges


개요​

이 글은 효과적인 접근 제어를 위해 sudo와 사용자 그룹을 사용하여 Linux 시스템에서 사용자 권한을 관리하는 방법을 설명합니다.

sudo와 사용자 그룹 사용​

중요한 시스템 변경을 위해 명령어 앞에 sudo를 붙여 슈퍼유저 레벨로 권한을 임시 상승합니다.

그룹 멤버십 확인:

$ groups
aaron family sudo

다른 사용자에게 sudo 권한 부여:

$ sudo gpasswd -a trinity sudo
완전한 sudo 권한은 시스템에 대한 완전한 제어를 제공하므로 항상 적절한 것은 아닙니다.

sudo 권한 세밀 조정​

세밀한 제어를 위해 visudo 유틸리티를 사용하여 /etc/sudoers에 특정 sudo 정책을 정의합니다.

이 파일을 직접 편집하지 마세요. visudo는 저장 전에 구문 오류를 확인합니다.

원하지 않는 sudo 그룹 멤버십 제거:

$ sudo gpasswd -d trinity sudo
$ sudo visudo

일반적인 sudoers 항목:

%sudo   ALL=(ALL:ALL) ALL

분석:

  1. 사용자/그룹: %sudo는 모든 sudo 그룹 멤버에 적용
  2. 호스트: ALL은 모든 호스트
  3. 실행 대상: (ALL:ALL)은 모든 사용자/그룹으로 실행 허용
  4. 명령어: 마지막 ALL은 모든 명령어 허용

일반 구문:

user_or_group   host=(run_as_user:run_as_group) command_list

예시 정책​

Trinity에게 모든 sudo 명령어 허용:

trinity   ALL=(ALL)       ALL

developers 그룹 모든 멤버 허용:

%developers ALL=(ALL)     ALL

특정 명령어로 제한하려면 ALL 대신 명령어 목록 사용.

다른 사용자로 명령어 실행 (-u 옵션):

$ sudo -u trinity ls /home/trinity
기본적으로 sudo 명령어는 root로 실행됩니다. -u 옵션으로 다른 사용자로 실행할 수 있습니다.
변경 전 sudoers 파일을 항상 백업하세요. 계정 잠금을 방지하기 위해 반드시 visudo 유틸리티를 사용하세요.