Linux 에서 사용자의 sudo 접근 권한 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 사용자가 sudo 접근 권한을 가지고 있는지 확인하는 방법을 배우게 됩니다. sudo -l을 사용하여 sudo 권한을 직접 테스트하는 방법, /etc/sudoers 설정 파일을 검사하는 방법, 그리고 사용자가 sudo 그룹에 속하는지 확인하는 세 가지 일반적인 방법을 살펴볼 것입니다.

이 단계를 완료함으로써 Linux 환경에서 관리 작업과 관련된 사용자 권한을 이해하고 확인하는 실질적인 기술을 습득하게 될 것입니다.

sudo -l 로 sudo 권한 테스트

이 단계에서는 sudo -l 명령을 사용하여 sudo 권한을 확인하는 방법을 배우게 됩니다. sudo (SuperUser DO) 는 허가된 사용자가 보안 정책에 따라 슈퍼유저 또는 다른 사용자로 명령을 실행할 수 있도록 합니다.

sudo -l 명령은 현재 호스트에서 사용자가 실행할 수 있는 명령 또는 지정된 호스트에서 허용되는 명령을 나열합니다.

현재 사용자 (labex) 의 sudo 권한을 확인해 보겠습니다. 아직 열려 있지 않다면 터미널을 엽니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

sudo -l

다음과 유사한 출력을 볼 수 있습니다.

Matching Defaults entries for labex on ...:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User labex may run the following commands on ...:
    (ALL : ALL) NOPASSWD: ALL

이 출력은 사용자 labex가 암호 없이 (NOPASSWD: ALL) ALL 사용자로 (ALL : ALL) ALL 명령을 실행할 수 있음을 알려줍니다. 이는 labex 사용자가 암호 없이 전체 sudo 권한을 가지고 있음을 확인합니다.

Linux 에서 권한을 관리하고 관리 작업을 실행하는 데 있어 sudo를 이해하는 것은 매우 중요합니다.

다음 단계로 진행하려면 계속을 클릭하십시오.

cat /etc/sudoers로 sudoers 파일 확인

이 단계에서는 sudo의 주요 설정 파일인 /etc/sudoers 파일을 검사합니다. 이 파일은 어떤 사용자 또는 그룹이 어떤 명령을 어떤 사용자로 실행할 수 있는지 결정합니다.

중요: /etc/sudoers 파일을 직접 편집하는 것은 위험할 수 있으며, 잘못된 경우 시스템에 접근할 수 없게 될 수 있습니다. 구문 검사를 제공하므로 일반적으로 이 파일을 편집하려면 visudo 명령을 사용하는 것이 좋습니다. 그러나 이 단계에서는 구조를 이해하기 위해 cat 명령을 사용하여 파일의 내용을 간단히 볼 것입니다.

/etc/sudoers는 시스템 파일이므로 읽으려면 sudo 권한이 필요합니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

sudo cat /etc/sudoers

/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

## 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 ALL=(ALL:ALL) ALL 줄은 특히 중요합니다. 이는 sudo 그룹 (%sudo) 의 구성원인 모든 사용자가 모든 호스트 (ALL) 에서 모든 사용자 (ALL) 및 모든 그룹 (ALL) 으로 명령을 실행할 수 있음을 의미합니다. 이는 Ubuntu 와 같은 Debian 기반 시스템에서 사용자에게 관리 권한을 부여하는 일반적인 방법입니다.

이 파일을 봄으로써 시스템에서 sudo 권한이 어떻게 구성되는지 알 수 있습니다.

다음 단계로 이동하려면 계속을 클릭하십시오.

groups 명령어로 sudo 그룹 확인

이전 단계에서 /etc/sudoers 파일에서 sudo 그룹의 구성원이 전체 sudo 권한을 가지고 있음을 확인했습니다. 이 단계에서는 groups 명령을 사용하여 labex 사용자가 실제로 sudo 그룹의 구성원인지 확인합니다.

groups 명령은 주어진 각 사용자 이름에 대한 기본 및 보조 그룹의 이름을 표시하거나, 사용자 이름이 주어지지 않은 경우 현재 프로세스에 대한 그룹 이름을 표시합니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

groups

labex 사용자가 속한 그룹을 나열하는 다음과 유사한 출력을 볼 수 있습니다.

labex sudo ssl-cert public

이 출력은 labexlabex, sudo, ssl-certpublic 그룹의 구성원임을 보여줍니다. 목록에 sudo가 있다는 것은 /etc/sudoers 파일에 따라 labex 사용자가 sudo 권한이 부여된 그룹의 일부임을 확인합니다.

또는 groups 명령으로 사용자 이름을 지정할 수 있습니다.

groups labex

출력은 동일합니다.

labex : labex sudo ssl-cert public

이 단계는 시스템에 구성된 그룹 멤버십과 sudo 권한 간의 연결을 강화합니다.

이 랩을 완료하려면 계속을 클릭하십시오.

요약

이 랩에서는 Linux 에서 사용자가 sudo 접근 권한을 가지고 있는지 확인하는 방법을 배웠습니다. 먼저 sudo -l 명령을 사용하여 현재 사용자가 sudo 권한으로 실행할 수 있는 명령을 나열하여 labex 사용자가 암호 없이 전체 sudo 접근 권한을 가지고 있음을 확인했습니다.

그런 다음 cat 명령을 사용하여 /etc/sudoers 파일을 탐색하여 sudo 권한을 구성하는 역할을 이해했습니다. 이 파일을 편집하는 데는 visudo가 권장되는 도구임이 강조되었습니다. 마지막으로, 그룹 멤버십이 sudo 접근 권한을 부여하는 일반적인 방법이므로 일반적으로 groups 명령을 사용하여 사용자가 sudo 그룹의 일부인지 확인합니다.