2 つのサーバー a と b の間でパスワードなしの ssh を有効にしていません。そのため、sshpass を使用して a からサーバー b に接続しています。
a からサーバー b の /etc/hosts にホスト エントリを追加する必要があります。しかし、サーバーbにログインしているユーザーは非ルートユーザーですが、ルートが所有するファイルを編集するsudo権限を持っています。
sshpass を使用しているときに、シェル スクリプトを介してサーバー a からサーバー b の /etc/hosts にホスト エントリを追加するにはどうすればよいですか。
試したスクリプトは次のとおりです。
#!/bin/bash
export SSHPASS="password"
SSHUSER=ciuser
WPC_IP=10.8.150.28
sshpass -e ssh -o UserKnownHostsFile=/dev/null -o 'StrictHostKeyChecking no' $SSHUSER@$WPC_IP "echo test >> /etc/hosts"
出力:
bash test.sh
Warning: Permanently added '10.8.150.28' (RSA) to the list of known hosts.
bash: /etc/hosts: Permission denied
ありがとうございました。