2

またはを入力せずにサーバーに接続しssh、ユーザーのパスワードを変更する必要があります。sshsudo password

いくつかの例を見つけましたが、1 つのコマンドを完了できません。

パスワードを入力せずにssh接続用の次のコマンドを見つけ、sudoユーザーを削除するコマンドを実行しました:

sshpass -p $admin_password ssh -t $admin@$server "echo $admin_password | sudo -S /usr/sbin/userdel -r $usr"

次に、ユーザーのパスワードを変更するためのコマンドを見つけました:

echo "$usr:$password" | sudo -S /usr/sbin/chpasswd;

最後に、私はこのようなものが欲しいです:

sshpass -p $admin_password ssh -t $admin@$server "echo $admin_password | sudo -S echo "$usr:$password" | sudo -S /usr/sbin/chpasswd;"

あなたはなにか考えはありますか?

4

1 に答える 1

1

あなたの質問は実際には2つのことを必要とします。ユーザーのパスワードをリモートで変更するコマンド:

ssh remoteserver 'echo -e "passwdofuser\npasswdofuser" | passwd username'

これを行うには、おそらくrootである必要があります。または、sudo構成で、「passwd」にユーザーが実行するためのパスワードを要求しないようにする必要があります。

visudo

ファイルを編集します。

Cmnd_Alias      MYPASSWD = /usr/bin/passwd
yourusername ALL = NOPASSWD: MYPASSWD

これにより、sshで接続でき、passwdコマンドを実行するためにパスワードを使用する必要がなくなります。

于 2012-04-18T02:48:06.197 に答える