ユーザー ID からユーザー情報を取得する
getpwuid
はシステムのパスワードファイル(ユーザーの登録情報を格納したファイルで通常は
/etc/passwd
)にアクセスし、UID に指定されたユーザー ID (uid) から該当のユーザー情報を返します。
# 0 1 2 3 4
my ( $name, $passwd, $uid, $gid, $quota,
$comment, $gcos, $dir, $shell, $expire ) = getpwuid(1000);
# 5 6 7 8 9
No. | 変数 | 意味 | 実例 |
---|---|---|---|
0 | $name |
ユーザー名 | futomi |
1 | $passwd |
パスワード (ハッシュ値やダミー文字になっていることがほとんどです) | x |
2 | $uid |
ユーザーID | 1000 |
3 | $gid |
グループID | 1000 |
4 | $quota |
クォータ情報 | |
5 | $comment |
コメント | |
6 | $gcos |
ユーザーの実名 | Futomi Hatano |
7 | $dir |
ホームディレクトリ | /home/futomi |
8 | $shell |
ログインシェル | /bin/bash |
9 | $expire |
有効期限 |
getpwuid
は、よく現在のスクリプトを実行しているユーザーの情報を取得するために使われることがあります。
その場合は、特殊変数 $<
(プロセスの実ユーザー ID) を使います。
実ユーザーと実効ユーザーが異なる場合、もし実効ユーザーの ID が必要なら $>
を使います。
my @info = getpwuid($<);
なお、getpwent
は Windows では機能しませんので注意してください。