ホームページ  >  記事  >  バックエンド開発  >  Linux システムでユーザー パスワードをバッチで変更する

Linux システムでユーザー パスワードをバッチで変更する

WBOY
WBOYオリジナル
2016-07-25 08:46:491460ブラウズ
スクリプトの目的: Linux システム ユーザーのパスワードをバッチで変更します
条件: passwd コマンドを使用する権限を持っているのは root のみであるため、変更するユーザーは root である必要があります
手順: 最初に IP、ユーザー、パスワード、およびポートを書き込みます情報を old_info ファイルに追加すると、スクリプトはこのファイルから対応する情報を読み取り、対話なしでシステムにログインすることを期待します。ランダムに生成された 8 桁のパスワードを root ユーザーの新しいパスワードに変更します。次に、新しいパスワードを net_info ファイルに保存します。
# cat old_info
# ip ip user passwd port
#-------------------------------- ---------------
192.168.18.217 root n8wX3mU% 22
192.168.18.218 root c87;ZnnL 22
# cat change_pass.sh
#!/bin/ bash
OLD_INFO=~/old_info
NEW_INFO=~/new_info
for IP in `awk '/^[^#]/{print $1}' $OLD_INFO`; do
USER=`awk -v I=$IP'{if(I==$1)print $2}' $OLD_INFO`
PASS=`awk -v I=$IP'{if(I==$1)print $3}' $OLD_INFO`
PORT=`awk -v I=$IP'{if(I==$1)print $4}' $OLD_INFO`
NEW_PASS=`mkpasswd -l 8`
echo "$IP $USER $NEW_PASS $PORT"> ;> $NEW_INFO
expect -c "
spawn ssh -p$PORT $USER@$IP
タイムアウト 2 を設定
Expect {
"(yes/no)"{send "yesr";exp_ continue}
"password:"{send "$PASSr";exp_ continue}
"$USER@*"{send "echo '$NEW_PASS' |passwd --stdin $USERrexitr";exp_ continue}
"$USER@* " {send"df -hr exitr";exp_ continue}
}"
完了
# cat new_info
192.168.18.217 root n8wX3mU% 22
19 2.168.18.218 root c87;Znn L 22
兄弟を受け取る無料の IT Education オリジナル Linux 運用および保守エンジニアのビデオ/詳細な Linux チュートリアル。詳細については、公式 Web サイトのカスタマー サービスにお問い合わせください: http://www.lampbrother.net/linux/
PHP、Linux、HTML5、UI、Android および他のビデオチュートリアル (コースウェア + ノート + ビデオ)!お問い合わせQ2430675018



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。