sudoersポリシーのDate_Specとは何ですか?

sudoersポリシーのDate_Specとは何ですか?

sudoersポリシーマニュアルを読んでいます。 「ユーザー仕様」セクションの下に表示されるDate_Specセクションの1つ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、誰かが役割をより特権的な役割に変更します。

関連情報