Linux ユーザのパスワードを(ほぼ自動)更新する
いやぁ。毎日記事を書こうと思ったけど、続けるのは、なかなか難しい。。。
で、本題。
都合上、半年に一度、パスワードを変更する必要があるシステムがあるんですが、勝手に変えてくれたらいいなぁ。と思い、適当にスクリプトを作ったった。
(ほぼ自動)って書いてあるのは、変更対象のユーザリストを手で作っているから。
#!/bin/bash
# list.confにはパスワードを変更したい対象のユーザ名を記載しておく
FILENAME=/path/to/list.conf
PSWDLIST=/path/to/pswd.conf
#
if [ -e $PSWDLIST ]; then
/bin/rm -f $PSWDLIST
fi
# "username":"password" の形式のファイルを生成する
/bin/cat $FILENAME |while read LINE ;do
# パスワードの長さを変える場合は "fold -w XX" を変更する
PASSWORD=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1 | sort | uniq`
/bin/echo $LINE:$PASSWORD >> $PSWDLIST
done
# パスワード変更
/usr/sbin/chpasswd < $PSWDLIST 2> /path/to/result`/bin/date +%Y%m%d%H%M%S`.log
ユーザが存在しない場合は、パスワード更新は実行されず、Log にエラー内容が出力される。
これを cron で回す。
仲間募集中
弊社ではエンジニアを募集中です。インフラからアプリ、ユーザサポートまで幅広く業務を行ってます。
https://www.nittsu-infosys.com/recruit/2019/index.html