2009-06-18 4 views
11

私はそのファイルを定期的に実行する必要があり、それはrootでなければなりません。crontabでBashファイルをrootとして実行することはできますか?

これは可能ですか?

[[email protected] nutch-0.9]# locate crontab 
/etc/crontab 
/etc/sysconfig/crontab 
/usr/bin/crontab 
/usr/share/man/man1/crontab.1.gz 
/usr/share/man/man1p/crontab.1p.gz 
/usr/share/man/man5/crontab.5.gz 
/usr/share/vim/vim71/syntax/crontab.vim 
[[email protected] nutch-0.9]# 
+1

また、serverfaultでこの質問をすることもできます。 –

答えて

18

はい、ルートユーザーのcrontabに追加してください。 crontab -eコマンドを実行します。

cronがファイルを保存する場所はちょっとばらばらになる可能性があるので、正しい場所にあることを確認するコマンドcrontab -eを使用してください。

+0

私はすべてのcrontabファイルをリストアップしましたが、これは私が変更する必要があることを意味しますか? – omg

+3

自分で直接crontabファイルを変更するのではなく、whatsisnameは正しいcrontabを編集する "crontab -e"コマンドを使うことを提案しています。 – ephemient

11

あなただけのルートとして

crontab -e 

を行うことができます。

0

私はrootのcrontab内のすべてのエントリがrootとして実行されると思います。アクションとしてBashスクリプトを呼び出させるだけで、あなたが望むことをすることができます。 (sudoを経由して)これを行うの

-1

一つの方法:あなたは、ユーザーの資格情報

  • 追加「sudoを/パス/に/コマンドで入力せずに実行するアカウントにはsudo prilvilegesを設定する必要があり

    1. 「(なし」)rootとしてコマンドを実行するには、コマンドにパラメータを追加することができます
  • 4

    だけ/etc/crontab内のエントリのユーザーとしてrootを指定します。

    0 0 * * * root somecommand 
    

    また、crontab -eをrootとして使用して、rootの個人用crontabにコマンドを追加することもできます。

    +0

    ありがとう、BTW、他のcrontabファイルが何であるか教えていただけますか? – omg

    +1

    /usr/binにあるcrontabファイルは、 "crontab -e"と入力するとエディタを開く実行ファイルです。/usr/share/man以下のファイルは、 "man crontab"と入力すると表示されるマニュアルページです。 /usr/share/vim*/sytax/crontab.vimは、vim(crontabファイル用に有効化)用の特別な構文強調表示です。 – sth

    +0

    これは私にとっては役に立たなかった。私は/ bin/sh:1root:not foundというメッセージを受け取った – Lumbee

    4

    何があっても、rootユーザーアカウントにアクセスする必要があります。

    1. 示唆したように、あなたがsetuidビットを使用することができ、sudoを使用することができます示唆したように、あなたは、rootのcrontabに追加することができます。 setuidビットの問題は、コンパイルされたプログラムでなければならないということです。コンパイルされている場合は、 "chmod 4755"を実行してファイルの所有者をrootに設定すると、ルートとして実行されます。コンパイルされていない場合は、単純にスクリプトを呼び出し、ラッパーでsetuidという小さなラッパーをC言語(または他のコンパイルされたプログラミング言語)で記述し、ラッパーがrootによって所有されていることを確認できます。

    root crontabを使用してください。それがそこにあるのです。 STHにより示唆されるように

    また、crontabファイルには、ユーザーのエントリがありません...構文は次のとおりです。あなたがrootとしてのcrontabに何かを入力したい場合は

    # .---------------- minute (0 - 59) 
    # | .------------- hour (0 - 23) 
    # | | .---------- day of month (1 - 31) 
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
    # | | | | | 
    # * * * * * command to be executed 
    

    、ちょうどあなたのrootアカウントにログインし、「 crontab -e "とvoila ...ルートcrontab。

    +0

    一部の(古い)バージョンのcronでは、crontabで指定されたユーザーが存在します。 http://www.unixgeeks.org/security/newbie/unix/cron-1.htmlを参照してください。 – jschmier

    関連する問題