[PHP-users 20100]Re: ApacheのUser名をPHPから取得する方法は?

Yoshihiro Hanahara hanahara @ meiko.co.jp
2004年 1月 29日 (木) 12:27:35 JST


花原@明宏です。


On Thu, 29 Jan 2004 12:17:12 +0900 (JST)
"チノ" <cappuccino @ paya.net> wrote:

> > phpinfo()のApacheのUser/Groupに「nobody(65522)/65522」のような値が
> > 出力されているのですが、この値のうちhttpdのUser名だけをphpの関数から
> > 取得する方法はありますでしょうか?(要するに「nobody」を取得したい)
> 
> get_current_user()
> でどうでしょうか。

get_current_user() は、「現在の PHP スクリプトの(ファイルの)所有者の名前
を取得する」なので、httpdプロセスのuserid/groupidではありません。

posix_geteuid(), posix_getegid() で、uid/gid が取得できます。
あとは、そこから posix_getpwuid(), posix_getgrgid()で、
各種情報を引き出せます。
以下、サンプル。

    <?php
    $pw = posix_getpwuid(posix_geteuid());
    echo sprintf("UserID: %s (%d)<br>", $pw['name'], $pw['uid']);

    $gr = posix_getgrgid(posix_getegid());
    echo sprintf("GroupID: %s (%d)<br>", $gr['name'], $gr['gid']);
    ?>

---
Yoshihiro Hanahara <hanahara @ meiko . co . jp>




PHP-users メーリングリストの案内