これがどれほど悪いアイデアなのかは説明しません。簡単に言えば、crontabでSudo
を実行するには、パスワードをプレーンテキストのどこかに保存する必要があります。
それは悪い考えです。
以下は、cronを使用して管理タスクを実行する推奨方法です。 ルートのcrontabを変更する場合は、crontabにSudo
と書く必要は本当にないので
次のコマンドを実行します。
Sudo crontab -e
これにより、root
のcrontabが開きます。 Sudo
は、とにかくroot
として呼び出されるため、このコンテキストでコマンドを実行する必要はありません。
したがって、ルートのcrontabに次を追加するだけです。
@hourly rm somefile
さて、あなたが絶対に安全でなく、パスワードでリスクを取りたい場合、以下はあなた自身のcrontabからコマンドを実行し、パスワードを自動的に入力しますSudo
のプロンプトが表示されたら。
繰り返しますが、これは推奨されません。
独自のcrontabで、次のようにコマンドを記述します。
@hourly echo "password" | Sudo -S rm somefile
ここでの明らかな欠点は、もし誰かがあなたのcrontabにアクセスしたとしても、あなたのパスワードは平文で読めるということです。
これを行うべきではありません。
Cronディレクトリ(/etc/cron.*
)の1つからスクリプトを配置する場合、ルートとして実行されているSudoを使用する必要はありません。
Crontabを使用している場合は、ルートのcrontabを使用する必要があります。これにより、rootとして実行され、Sudoも必要ありません。
Sudo crontab -e
ターミナルで次のコマンドを実行します
Sudo visudo
ファイルの最後に次の行を追加しました。
vidyadhar ALL= NOPASSWD: /bin/rm
上記の例では、vidyadharがユーザー名であり、vidyadharを介してrmコマンドを実行している場合、パスワードを要求しません。