sudoers 정책의 Date_Spec은 무엇입니까?

sudoers 정책의 Date_Spec은 무엇입니까?

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누군가 역할을 더 특권적인 역할로 변경합니다.

관련 정보