"passwd root --stdin"は私のパスワードを何に設定しますか?

私は走る:

sshpass -p 'OldPassword' ssh -o StrictHostKeyChecking=no [email protected] 'echo "Te3EQeF2U!-Em_C3eBU6A&a=u2$e28*c" | passwd root --stdin'

私のパスワードに特殊文字が含まれてecho "Te3EQeF2U!-Em_C3eBU6A&a=u2$e28*c"いることを知りませんでした。bash: !-Em_C3eBU6A: event not found

これに基づいて、誰でも自分のパスワードを何に設定したのかを理解できますか?

ベストアンサー1

試してみることができますかTe3EQeF2U!-Em_C3eBU6A&a=u2*c?これは仮想マシンからコピーするのに効果的でした。

ちなみに私はこうしました。

CentOS仮想マシンでは:

$ mv /usr/bin/passwd /usr/bin/passwd.orig
$ vim /usr/bin/passwd
<INSERT>
while read line
do
  echo "$line" >> /tmp/passwd
done < /dev/stdin
<SAVE>

これはバイナリを同じ入力を受け取り、単に書き込むバイナリpasswdに置き換えます。passwd --stdin/tmp/passwd

それから走って行きsshpass -p '<VM-PASSWORD>' ssh -o StrictHostKeyChecking=no root@<VM-IP> 'echo "Te3EQeF2U!-Em_C3eBU6A&a=u2$e28*c" | passwd root --stdin'ました。Te3EQeF2U!-Em_C3eBU6A&a=u2*c/tmp/passwd

完了したら、passwd元のバイナリをもう一度移動します。

おすすめ記事