• ベストアンサー

Solarisのdateコマンド

dateコマンドで入力値に制限を加えることは可能でしょうか? 方法はありますでしょうか? 例えば、現在時刻から15分以上先の値をセットできなくする。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

ソースコードを修正しない限り不可能でしょう。 そもそも、デフォルトではdateコマンドで日付をセットできるのはrootのみです し、逆にroot権限があれば何でもできてしまう(仮にdateコマンドが削除されて いてもその場でソースを書いてコンパイルすれば理屈上は任意の日時に変更でき てしまう作れてしまう)ので、セキュリティ面からはあまり意味がないことだと 思います。 例えば、以下のプログラムをコンパイルしてrootユーザで実行すれば時計は1時 間後に設定されます。 #include <stdlib.h> #include <sys/time.h> int main () { struct timeval tv; int ret; if (gettimeofday (&tv, NULL) == -1) { perror ("gettimeofday"); exit (1); } tv.tv_sec += 3600; /* after a hour */ if (settimeofday (&tv, NULL) == -1) { perror ("setttimeofday"); exit (1); } exit (0); } それに、仮に現在時刻よりも15分以上先に設定できないようにできたとしても、 同じdateコマンドを2回に分けて実行すれば30分先でも設定できてしまうこと になるでしょう。

すると、全ての回答が全文表示されます。

関連するQ&A