端末で実行すると正常に動作する次のコマンドがあります。
ssh someuser@someserver -t "sudo systemctl start someservice"
SSHはパスワードが必要なく、公開鍵で接続が可能で、someuser
パスワードなしでsudo起動も可能です。someservice
上記のコマンドをcrontabに挿入する必要があります。残念ながら実行されませんでした。ssh -t
sudoに必要な疑似端末を使用して問題が発生したと考えられます。 cronを介して擬似端末を達成できないようです(私の仮定、明確な証拠はありません)。
全体的に私の目標は、対話なしで時間間隔でコマンドを実行することです。既存の方法でこれをソートする方法についてのアイデアはありますか?
代替職を歓迎します。
答え1
問題は私が最初に疑ったようにssh -t
。
解決策は、/etc/sudoers
SSHサーバー側に以下を追加したことです。
Defaults:someuser !requiretty
私はそれが何のためであるかを言うrequiretty
ことはできません。安全のため、グローバル以外のユーザーに対してのみ無効にします。他のどれもユーザーに影響を与えないようです。