タグ・アーカイブ: ユーザ作成

CentOSでランダムなパスワードを生成するには「mkpasswd」コマンドを使えばできるのだが、残念ながらデフォルトではインストールされていない。ただし、baseリポジトリにあるexpectというパッケージに含まれているので、何も考えずにyumコマンドでインストールすることができる。

■■ yum search expect の出力結果(該当部分のみ抜粋)

expect.i386                              5.42.1-1               base
Matched from:
expect
Expect is a tcl application for automating and testing
interactive applications such as telnet, ftp, passwd, fsck,
rlogin, tip, etc. Expect makes it easy for a script to
control another program and interact with it.

■■ インストール

sh-3.00# yum install expect

■■ まずは使ってみる

sh-3.00$ mkpasswd
!3bWVyoy1

このように、パスワードに使えそうなランダムな文字列が出力された。
再度実行してみると・・・

sh-3.00$ mkpasswd
Sfv7@Mhv2

今度は違う文字列が出てきました。

■■ ちょっと応用

大文字小文字の有無や記号使用の有無、数字使用の有無や文字数の指定もできます。
以下は、「記号を使わない」「大文字は2文字」「数字は2文字」で「8文字で出力」をオプション指定したものです。

sh-3.00$ mkpasswd -s 0 -C 2 -d 2 -l 8
tdg07HHq

■■ もうちょっと応用

linuxには、大量にUNIXアカウントを作成するツールとして「newusers」コマンドがあります。
# newusers 【平文パスワードが記載されたパスワードファイル】
というように、newusersコマンドの引数にファイルを指定してやればユーザの大量登録ができますが、
ユーザ追加のたびに手打ちでパスワードをつけるのは骨です。そこで今回は、新しく「user01」という
ユーザを1名作成する場合を想定した例をあげましょう。

【user01のデータを作成】
# echo user01:`mkpasswd -s 0 -C 2 -d 2 -l 8`:501:501:User 01:/home/user01:/bin/bash > userdata.txt

【newusersコマンドでuser01を登録】
# newusers userdata.txt

【/etc/passwd を確認】
# grep ^user01 /etc/passwd
user01:x:501:501:User 01:/home/user01:/bin/bash

【できあがったパスワードを確認】
# cat userdata.txt
user01:Foj89Xea:501:501:User 01:/home/user01:/bin/bash

【user01でログインして確認】
login as: user01
user01@192.168.0.110's password:
Last login: Fri Jan  4 22:21:50 2008 from 192.168.0.101
-bash-3.00$ id
uid=501(user01) gid=501(user01) groups=501(user01)

以上でランダムなパスワードを用いたユーザ作成の手順は終了です。