Articles
ルートcronが勝ちました' tスクリプトの実行(許可が拒否されました)
On 2月 15, 2021 by adminルートcronタブを定期的に編集しました次のコマンドを使用して、特定のユーザーのフォルダーにあるスクリプトを実行します。
sudo crontab -e
cronがスクリプトを実行すると、次のように出力されます。
sh: 1: /home/user/Location/Of/Script: Permission denied
ルートcronには何でもできる権限があると思いました。このスクリプトをrootとして手動で実行しても、問題はありません。
ドキュメントを読んだところ、さらにエラー情報が見つかりました。ここ:
sudo cat /var/log/syslog
私が見つけたものは次のとおりです:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
しかし、私はこれはおそらく許可拒否の問題とは無関係だと思います。
では、実際に何をする必要がありますか?
コメント
回答
私は思いますスクリプトが実行可能ではないこと。したがって、次のコマンドを使用して作成します。
chmod +x /home/user/Location/Of/Script
または、そのスクリプトの所有者でない場合:
sudo chmod +x /home/user/Location/Of/Script
コメント
- したがって、cronでスクリプトを実行するには、実行可能である必要がありますが、rootでは手動で実行できません'このフラグは必要ありませんよね?
- スクリプトを手動で実行する方法によって異なります。
./Scipt
または/home/user/Location/Of/Script
を使用してスクリプトを実行した場合、'は問題ありません。通常、スクリプトは実行可能である必要があります。 Linuxでシェルスクリプトを実行する方法を参照してください。 - それは理にかなっていますが、私は実際にこのスクリプトを手動で./scriptを実行しています。私がそれをcronしようとするまで、パーミッションの問題に遭遇することなく方法。助けてくれてありがとう。
/home/user/Location/Of/Script
の権限を一覧表示できますか?例えば。la -l /home/user/Location/Of/Script
。ちなみに、外部でメールを送受信していなくても、通常の内部使用にはMTAをインストールする必要があります。 'システムにまだインストールされていないことに驚いています。