web-dev-qa-db-ja.com

Ubuntu 16.04のcronjobsでSudo ...コマンドを実行する方法

Rootユーザーとしてのみ実行できる特定の端末コマンドがあります。 Sudoキーワードなしで実行しようとすると、Permission deniedエラーで失敗します。例は、特定の場所にディレクトリ/フォルダを作成するコマンドです。

Ubuntu 16.04では、cronジョブの一部としてこのようなコマンドを実行する必要があります。通常、ターミナルでSudoキーワードを使用してコマンドを実行すると、rootユーザーのパスワードの入力を求められ、コマンドが正常に実行されます。

しかし、今ではcrontabファイルにcronジョブの一部としてこのコマンドを入力する必要がありますが、どうすればよいですか? cronjobの一部としてこのようなコマンドを実行するにはどうすればよいですか?

2
Shy

単にcrontab -eroot userとして実行します。これはrootパーミッションでコマンドを実行し、その前にSudoを追加する必要はありません。

ただし、rootユーザーでログインすることはできず、cronファイルでフルパスを指定する必要があるcronジョブとしてジョブを実行する必要があります。

 $ * * * * * /usr/bin/Sudo /your/command

また、/etc/sudoersファイルのコマンドの前にNOPASSWDを追加して、パスワードなしでrootとしてコマンドを実行できます。

4
Ali Ghasempour

別のオプションは、/etc/crontabのシステム全体のcrontab(または/etc/cron.dのファイル)に配置することです。ここで、各タスクを実行するユーザーを指定できます。

* * * * * root mkdir /foo/bar
2
fkraiem