ユーザーがcrontabを使用できるかどうかを確認する方法は?

ユーザーがcrontabを使用できるかどうかを確認する方法は?

特定のユーザーがcrontabを使用できることを確認したいと思います。シェルスクリプトでこの検証を使用したいと思います。

これを行う正しい方法は何ですか?

ベストアンサー1

VISUAL=true EDITOR=true crontab -e 2>/dev/null

このコマンドは自動ですが、終了ステータスはスクリプト(およびそれを実行しているユーザー)が利用可能かどうかを示しますcrontab

他のユーザーの追加をテストするには-u usernamecrontabサポートされている場合)、スクリプトが-u他のユーザーの代わりに実行するのに十分な権限を持っている場合にのみ機能します。許可されていないスクリプトは、他のユーザーが使用できないかのようにcrontab終了状態を持ちます。1crontabsudo -u username …sudoそれともそうではないかもしれません。構成に応じて環境を設定できます。

欠点:

  • サポートするcrontabこともサポートしない場合もあります-e(POSIXではオプションと言います)。
  • この方法は、「ユーザーが利用できるかどうか」crontabを正確に確認するのではなく、「スクリプトがユーザーcrontabの代わりに使用できるか」を確認することです。これはあなたが望むものかもしれないし、そうでないかもしれません。 「特定のユーザー」が「スクリプトを実行しているユーザー」を意味する場合は、これは不要であり、-uメソッドは正しく機能します。

利点:

  • /etc/cron.allowandを分析する必要はありません/etc/cron.deny(使用されている場合は実装定義ディレクトリにあります)。最終的な回答を構成するためにロジックを構築する必要はありません。crontabそれはあなたのためにすべてを自分で行います。

メモ:

  • 私は Kubuntu 18.04.5 LTS で以前crontab確認しましたが、VISUALEDITORPOSIX仕様のみ言及されましたEDITOR。これがこの答えが2つの変数を設定する理由です。
  • より良く見えるかもしれませんが、crontab -lcrontabがない場合、コマンドは失敗を返します(少なくとも私のKubuntuではそれがうまくいきます)。
  • VISUAL=true crontab -e私のKubuntu 18.04.5 LTSにcrontabが存在しない場合いいえ空のものをインストールします。他の実装についてはよくわかりません。 crontabがない場合は、空のcrontabをインストールすると副作用が発生する可能性があります。

おすすめ記事