ユーザーパスワードを変更するシェルスクリプトを作成しています。コマンドを試しましたが、passwd
コマンドは常に古いパスワードと新しいパスワードを要求します。私のスクリプトはそのパスワードを受け入れません。
古いパスワードと新しいパスワードが変数などから来るシェルスクリプトでユーザーパスワードを変更する方法はありますか?
答え1
#!/usr/bin/expect -f
spawn passwd username
expect "New password:"
send -- "user-password\r"
expect "Retype new password:"
send -- "user-password\r"
expect eof
テスト
私はそれを別の名前で保存し、script.exp
スクリプトを実行したときにこれが私のコンピュータに表示される出力です。
expect script.exp
spawn passwd ramesh
Changing password for user ramesh.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
パスワードを入力するためにキーボードを使用する必要はありません。もちろん、この機能を要件に合わせて変更し、必要な方法で使用できます。