cronでsshを介してsudoを実行する

cronでsshを介してsudoを実行する

端末で実行すると正常に動作する次のコマンドがあります。

ssh someuser@someserver -t "sudo systemctl start someservice"

SSHはパスワードが必要なく、公開鍵で接続が可能で、someuserパスワードなしでsudo起動も可能です。someservice

上記のコマンドをcrontabに挿入する必要があります。残念ながら実行されませんでした。ssh -tsudoに必要な疑似端末を使用して問題が発生したと考えられます。 cronを介して擬似端末を達成できないようです(私の仮定、明確な証拠はありません)。

全体的に私の目標は、対話なしで時間間隔でコマンドを実行することです。既存の方法でこれをソートする方法についてのアイデアはありますか?

代替職を歓迎します。

答え1

問題は私が最初に疑ったようにssh -t

解決策は、/etc/sudoersSSHサーバー側に以下を追加したことです。

Defaults:someuser !requiretty

私はそれが何のためであるかを言うrequirettyことはできません。安全のため、グローバル以外のユーザーに対してのみ無効にします。他のどれもユーザーに影響を与えないようです。

関連情報