0

user01マシンのユーザーにマシンをシャットダウンする権限を付与したいと考えていますが、1 時間以上前に通知する必要があります。

基本的に、これは次のコマンドに要約されます。

shutdown -h +<time>

この場合、<time>60 (分) より大きくする必要があります。

visudo を使用して、次の sudoers 行を追加しました。

user01 ALL=/sbin/shutdown -h +<time>

time 引数が 60 より大きい場合にのみ停止シャットダウンを発行できるようにする方法が必要ですuser01。正規表現を試しましたが、役に立ちませんでした。私の言い方は間違っているかもしれませんが、sudoers ファイルは正規表現をサポートしていないようです。

このタスクを達成するための式の評価に関するヘルプをいただければ幸いです。

4

1 に答える 1

0

sudoers が正規表現をサポートしているかどうかさえ知りたくありません(簡単な grep はサポートしていないことを示唆しています)。

  1. 正規表現はトリッキーです。単純なミスで、ユーザーが Elvis-knows-what... を実行できる可能性があります。
  2. [6-9][0-9]|[1-9][0-9]*[0-9][0-9] - 表記で出現回数をカウントするためのショートカットが許可されている場合 (または単に'+') でも、本当に欲しいですか?

そうは言っても、最も簡単な(そして最も賢明な)解決策は、次の行に沿ってスクリプトを書くことです

#! /bin/sh
test $# -eq 1    || exit
test 60 -lt "$1" || exit # maybe print a message
exec /sbin/shutdown -h "+$1"

user01 がそのスクリプトを sudo できるようにします。

于 2014-10-18T11:57:05.883 に答える