10.3. 권한이 없는 사용자가 특정 명령을 실행하도록 활성화
관리자는 /etc/sudoers.d/
디렉터리에 정책을 구성하여 권한이 없는 사용자가 특정 워크스테이션에서 특정 명령을 실행하도록 허용할 수 있습니다.
사전 요구 사항
- 시스템에 대한 root 액세스 권한이 있습니다.
절차
root 로서
/etc/
: 아래에 새sudoers.d
디렉토리를 만듭니다.# mkdir -p /etc/sudoers.d/
/etc/sudoers.d
디렉토리에 새 파일을 만듭니다.# visudo -f /etc/sudoers.d/<filename>
파일이 자동으로 열립니다.
/etc/sudoers.d/ <filename
> 파일에 다음 행을 추가합니다.<username> <hostname.example.com> = (<run_as_user>:<run_as_group>) <path/to/command>
-
&
lt;username
>을 사용자 이름으로 바꿉니다. -
&
lt;hostname.example.com&
gt;을 호스트의 URL로 바꿉니다. -
(<run_as_user > : <run_as_group> )
명령을 실행할 수 있는 사용자 또는 그룹으로 바꿉니다. 이 섹션을 생략하면 <username>
에서 root로 명령을 실행할 수 있습니다. -
&
lt;path/to/command&
gt;를 명령의 전체 절대 경로로 바꿉니다. 명령 경로 뒤에 해당 옵션을 추가하여 특정 옵션 및 인수가 있는 명령만 실행하도록 사용자를 제한할 수도 있습니다. 옵션을 지정하지 않으면 사용자는 모든 옵션과 함께 명령을 사용할 수 있습니다. 한 줄에 동일한 호스트에서 두 개 이상의 명령을 허용하려면 쉼표로 구분한 뒤에 공백으로 구분하여 나열할 수 있습니다.
예를 들어
user1
이dnf
를 실행하고host1.example.com
에서reboot
명령을 실행할 수 있도록 하려면user1 host1.example.com = /bin/dnf, /sbin/reboot
를 입력합니다.
-
&
선택 사항: 사용자가
sudo
권한을 사용하려고 할 때마다 이메일 알림을 받으려면 파일에 다음 행을 추가합니다.Defaults mail_always Defaults mailto="<email@example.com>"
- 변경 사항을 저장하고 편집기를 종료합니다.
검증
사용자가
sudo
권한으로 명령을 실행할 수 있는지 확인하려면 계정을 전환합니다.# su <username> -
사용자로
sudo
명령을 사용하여 명령을 입력합니다.$ sudo <command> [sudo] password for
<username>
:사용자의
sudo
암호를 입력합니다.권한이 올바르게 구성된 경우 시스템은 명령 및 옵션 목록을 표시합니다. 예를 들어
dnf
명령을 사용하면 다음 출력이 표시됩니다.... usage: dnf [options] COMMAND ...
시스템이 오류 메시지
<username>이 sudoers 파일에 없는 경우. 이 문제는
/etc/sudoers.d/
의 <username
>에 대한 파일인 것으로 보고됩니다.시스템이 <
username > 오류 메시지를 반환하는 경우 < host.example.com>에서 sudo를 실행할 수
없는 경우 구성이 올바르게 완료되지 않았습니다. root로 로그인하고 구성이 올바르게 수행되었는지 확인합니다.시스템이 오류 메시지
Sorry를 반환하는 경우 user < username >은 <path/to/command> ' ' <path/to/command>'를 < host.example.com >에서 root로 실행할 수 없습니다.
. 에서는 사용자의 규칙에 명령이 올바르게 정의되지 않습니다.
추가 리소스
-
sudo(8)
,visudo(8)
,sudoers(5)
매뉴얼 페이지