2018-06-15_Linuxで一括でユーザーのパスワード設定を行う方法(chpasswd)
このページでわかること
- 複数ユーザーへchpasswdコマンドを使ったパスワード一括設定の方法
初めてのLinuxシステム構築で先輩から教えてもらった方法です。
当時はpasswdコマンドで1ユーザー毎に設定していました。
方法としては下記の通りです。
- 指定フォーマットでchpasswdに渡す
- フォーマット user:password
参考:25~34行目辺りが該当手順です
凡例
| 下記形式のファイルをchpasswdコマンドで読み込めばOk
user1:passwd
user2:passwd
|
参照
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 | ##c ユーザを追加
#r adduser test1
#r adduser test2
#r adduser test3
##c 登録されたか確認
#r grep test /etc/passwd
test1:x:501:501::/home/test1:/bin/bash
test2:x:502:502::/home/test2:/bin/bash
test3:x:503:503::/home/test3:/bin/bash
##c shadowも確認 (2フィールドが !! なのでパスワード未設定)
#r grep test /etc/shadow
test1:!!:17008:0:99999:7:::
test2:!!:17008:0:99999:7:::
test3:!!:17008:0:99999:7:::
##c スイッチしようとしてもパスワードを求められてしまう
#r su - iuser
パスワード:
$c su - test1
パスワード:
su: パスワードが違います
##c chpasswdに渡す設定用ファイルを作成
##c user:password形式で記載します
#r cat << EOF > /tmp/pass_settei
test1:pass1
test2:pass2
test3:pass3
EOF
##c chpasswdコマンドに食わせる(エラーがでなければOK)
#r chpasswd < /tmp/pass_settei
##c shadowを確認(2フィールド目が暗号化されたパスワード)
#r grep test /etc/shadow
test1:$1$QdNQr/lH$I2/tzWz0yWLzhBSa9rc.U0:17008:0:99999:7:::
test2:$1$QdNQr/lH$ndjHlIjvNEkmieengVLaT0:17008:0:99999:7:::
test3:$1$QdNQr/lH$yNrzfvP7t0RC.1pDlBfuN1:17008:0:99999:7:::
##c ログイン確認
[iuser@centos ~]$ su - test1
パスワード:
[test1@centos ~]$ su - test2
パスワード:
[test2@centos ~]$ su - test3
パスワード:
[test3@centos ~]$
##c 余談 /etc/shadow のハッシュ値と比較してパスワードが合っているか確認する
##c 必要な文字列 /etc/shadowから抜き出す
#r grep test1 /etc/shadow | gawk -F'$' '{print "$"$2"$"$3"$" }'
$1$QdNQr/lH$
##c perlでハッシュ値を作成し、/etc/shadowの値と合致したらパスワードも合致
#r perl -e 'print crypt("pass1","\$1\$QdNQr/lH\$"),"\n"' ; grep
test1 /etc/shadow | cut -d':' -f2
$1$QdNQr/lH$I2/tzWz0yWLzhBSa9rc.U0
$1$QdNQr/lH$I2/tzWz0yWLzhBSa9rc.U0
|