sudoers 정책 매뉴얼을 읽고 있습니다. "사용자 사양" 섹션 아래에 보이는 Date_Spec
섹션 중 하나 Option_Spec
는 다시 선택 사항입니다 Cmnd_Spec
.
User_Spec ::= User_List Host_List '=' Cmnd_Spec_List \
(':' Host_List '=' Cmnd_Spec_List)*
Cmnd_Spec_List ::= Cmnd_Spec |
Cmnd_Spec ',' Cmnd_Spec_List
Cmnd_Spec ::= Runas_Spec? Option_Spec* Tag_Spec* Cmnd
Runas_Spec ::= '(' Runas_List? (':' Runas_List)? ')'
Option_Spec ::= (Date_Spec | Timeout_Spec)
Date_Spec ::= ('NOTBEFORE=timestamp' | 'NOTAFTER=timestamp')
Timeout_Spec ::= 'TIMEOUT=timeout'
이것은 무엇을 합니까? 내가 읽은 바에 따르면 사용자가 명령을 실행할 수 있는 시간을 제한하는 데 사용할 수 있는 것 같습니다. 그렇죠? 그렇다면 이 기능의 가능한 사용 사례는 무엇입니까?
인용하다:man 5 sudoers
답변1
Date_Spec에 대한 지원이 버전에 추가된 것 같습니다.1.8.20,그리고변경 로그코드가 2017년 2월 18일에 변경되었음을 나타냅니다.
이미 LDAP에 있는 것과 유사한 NOTBEFORE 및 NOTAFTER 명령 옵션이 추가되었습니다.
이 옵션은 여러분이 추측한 대로 정확하게 수행됩니다. 즉, 시작 및/또는 종료 날짜를 갖도록 해당 규칙을 제한합니다.
예를 들어 다음 규칙을 추가했습니다.
jeff2 ALL=(ALL) NOTBEFORE=20190409212700 /bin/ps
그런 다음 다음 명령을 실행하십시오 jeff2
.
$ sudo -l
# ... elided ...
User jeff2 may run the following commands on r2d2:
(ALL) /bin/ls
(ALL) NOTBEFORE=20190410012700Z /bin/ps
$ date -u '+%Y%m%d %H:%M:%S'
20190410 01:25:52
$ sudo /bin/ps
Sorry, user jeff2 is not allowed to execute '/bin/ps' as root on r2d2.
$ sleep 2m ## plus get distracted by something
$ date -u '+%Y%m%d %H:%M:%S'
20190410 01:29:33
$ sudo /bin/ps
PID TTY TIME CMD
9607 pts/1 00:00:00 ps
임시 추가 액세스 권한(예: 특정 애플리케이션 업그레이드 또는 변경)을 부여하려는 사용 사례를 볼 수 있지만 sudoer를 업데이트하기 위해 해당 기간 전후에 로그인하는 것을 기억할 필요는 없습니다. 역할을 변경하는 권한 있는 사용자가 있을 수 있으며 특정 날짜 이후에는 특정 명령이 더 이상 필요하지 않을 수 있습니다. NOTAFTER
그런 다음 편리하게 해당 명령을 사용하고 나중에 들어가서 규칙을 삭제할 수 있습니다. 마찬가지로 NOTBEFORE
누군가 역할을 더 특권적인 역할로 변경합니다.