回答:
これがどれほど悪い考えなのかは説明しません。簡単に言えばsudo、crontab で実行するには、パスワードをプレーンテキストのどこかに保存する必要があります。
それは悪い考えです。
以下は、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にアクセスした場合、パスワードは平文で読めるということです。
これはすべきではありません。
rootのユーザーのcrontabの代わりに、システム全体のcrontab /etc/crontab?
sudoersパスワード要件のないsudoグループのように、ファイルで利用できる微妙な点を明らかにするため、マークを逃しています。
cronディレクトリ(/etc/cron.*)の1つからスクリプトを配置する場合、sudoがrootとして実行されているため、sudoを使用する必要はありません。
crontabを使用している場合は、ルートのcrontabを使用する必要があります。これにより、rootとして実行され、sudoも必要ありません。
sudo crontab -e
ターミナルで次のコマンドを実行します
sudo visudo
ファイルの最後に次の行を追加しました。
vidyadhar ALL= NOPASSWD: /bin/rm
上記の例では、vidyadharがユーザー名であり、vidyadharを介してrmコマンドを実行している場合、パスワードを要求しません。
sudo rm -rf 'slash'(そのコマンドを実行していないというユーザーから実行、)、..私は、いや、それは危険な感じ、知らないパスワードを必要としないのでしょうか?
vidyadhar ALL= NOPASSWD: /bin/rm somefileより安全だろう。
<username> ALL=(ALL) NOPASSWD: /home/<username>/bin/<script>、これははるかに安全です。