Linux ユーザー一覧の確認と/etc/passwd ファイル
このLinux OSには、どんなユーザがいるのか。 ユーザーの一覧を見たい場合があります。
これは、/etc/passwdファイルを確認する事で解決します。
Last Update : 2008年08月16日
Linux ユーザー一覧の確認と/etc/passwd ファイル 項目
1. /etc/passwd ファイルと見方
ユーザー情報は、/etc/passwdファイルで確認する事ができます。 ユーザー名、パスワード、ユーザーID、グループID、コメント(本名とか電話番号とか)ホームディレクトリ、ログインシェルが記録されています。
/etc/passwd の中身はこんな感じです。
[hogehoge@localhost ~]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin hogehoge:x:500:501:KAZMAX_ADMIN:/home/hogehoge:/bin/bash
hogehoge | ユーザー名 |
x | 「 x 」という文字か、暗号化されたパスワード。「 x 」はシャドウパスワードを使用している事を意味します。 |
500 | ユーザーID |
501 | グループID |
KAZMAX_ADMIN | コメント(本名とか電話番号とか)。コメント無しの場合は何も記入されない。 |
/home/hogehoge | そのユーザーのホームディレクトリ。 |
/bin/bash | そのユーザーのログインシェル名。 |
memo
パスワードの部分が空白である場合、パスワード無しでログインできる可能性があります。すぐ設定してあげましょう。 逆に言えば、/etc/passwd ファイルから、あるユーザーの「 x 」を削除すると、パスワード未設定の状態になり、 パスワード無しでログインできる状態にする事ができます( パスワード無しでログインできる環境なら )。
2. /etc/passwd と /etc/shadow
最近のディストリビューションでは、パスワードの場所に大概「 x 」と記入されています。
以前では、/etc/passwdファイルに暗号化されたパスワードが書かれていました。
/etc/passwd ファイルは一般ユーザーでも参照でき、がんばると暗号化されたパスワードを解析する事ができるようです。 また、/etc/passwd ファイルを一般ユーザーが読めないようにすると、ログインできなくなります。
この為、シャドウパスワードというものが利用されるようになり、/etc/passwd ファイルには「 x 」とだけ書かれるようになりました。 代わりに、/etc/shadow ファイルに暗号化されたパスワードが書かれています。
ちなみに、root のリードオンリーです。
[root@localhost ~]# ls -l /etc/shadow -r-------- 1 root root 1559 4月 14 00:25 /etc/shadow
3. /etc/passwd から、ユーザー一覧を出力する
/etc/passwd ファイルからユーザー一覧を出力します。
[hogehoge@localhost ~]$ cut -d: -f1 /etc/passwd root bin daemon adm lp
memo
alias で登録しておくと結構便利です。
listusersというコマンドがUNIXにあるので同じ名前で。
ログインした時から使えるように、ホームディレクトリにある「.bashrc」に追記。
[hogehoge@localhost ~]$ cd
[hogehoge@localhost ~]$ vi .bashrc
alias listusers="cut -d: -f1 /etc/passwd" ← 追記
[hogehoge@localhost ~]$ source .bashrc
[hogehoge@localhost ~]$ listusers
root
bin
daemon
adm
lp
memo
2008年08月16日 - 追記
glibc-commonというパッケージに、「getent」というコマンドがあり、「passwd」というオプションをつけて実行すると、 ldapアカウント含むユーザーの一覧を出力する事ができます。
[hogehoge@localhost ~]$ getent passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin