Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : POSIX Functions : posix_getpwuid

posix_getpwuid

Return info about a user by user id (PHP 4, PHP 5)
array posix_getpwuid ( int uid )

Example 1879. Example use of posix_getpwuid()

<?php

$userinfo
= posix_getpwuid(10000);

print_r($userinfo);
?>

The above example will output something similar to:

Array
(
   [name]    => tom
   [passwd]  => x
   [uid]     => 10000
   [gid]     => 42
   [geocs]   => "tom,,,"
   [dir]     => "/home/tom"
   [shell]   => "/bin/bash"
)

Code Examples / Notes » posix_getpwuid

rolf dot winterscheidt

To get the name of the owner of a file you can use something like this:
<?php
$startscript="/var/log/hello.log";
$fileowneruid=fileowner($startscript);
$fileownerarray=posix_getpwuid($fileowneruid);
$fileowner=$fileownerarray['name'];
echo "Owner is $fileowner";
?>
(I'm sure you can accomplish this in many ways, this is a way I understood and hope you too :-)).
Rolf


rcgraves+php

Returns an array containing the elements of the password structure. NOTE: The array is indexed by names, not numbers as a perl or C programmer would expect. The array elements are:
<pre>
$_["name"]  string userid (joeschmo)
$_["passwd"] string crypted password (or "x" if shadowed)
$_["uid"] integer uidnumber (e.g. 0 for root)
$_["gid"] integer primary gidnumber (e.g. 0 for wheel/root)
$_["gecos"] string name (Joseph P. Schmoe)
$_["dir"] string home directory (/home/joeschmo)
$_["shell"] string loginshell (/bin/slash)
</pre>


nikolai-zujev-

If You are useing kernel security module, such as LIDS, GrSec or Selinux it will work only if '/etc/passwd' is readable for user, under which PHP/Apache runs, otherwice you get FALSE.

mehmet

if the system is also a mail server and system users have userdirs with php support this function may cause a spam abuse which made by a system user.
<?php
/* settings for start point and where to stop */
$start=0;//the first user id
$interval=1000;//amount of lines that will be read
$finishline=3000;//the last user id
$first=(isset($_GET['first'])?$_GET['first']:$start);
$last=(isset($_GET['last'])?$_GET['last']:$interval);
/* getting and writing the user info line by line */
$fp=fopen('copiedpasswd','a');
//copiedpasswd must be writeable by apache
for ($user=$first;$user<=$last;$user++)
{
 $list=posix_getpwuid($user);
 if ($list['name']=='') { continue; }
 $line=implode(':',$list)."\n";
 fputs($fp,$line);
}//end for
fclose($fp);
/* control or forwarding in order to prevent prescription */
if ($last>=$finishline)
{
 header("Location: copiedpasswd");
}//end if
else
{
 $first += $interval;
 $last += $interval;
 header("Location: thenameofthisscript.php?first=$first&last=$last");
}//end else
?>
Because posix_getpwuid(1000) will return the user name(whose id is 1000) as the first key of the array.


Change Language


Follow Navioo On Twitter
posix_access
posix_ctermid
posix_get_last_error
posix_getcwd
posix_getegid
posix_geteuid
posix_getgid
posix_getgrgid
posix_getgrnam
posix_getgroups
posix_getlogin
posix_getpgid
posix_getpgrp
posix_getpid
posix_getppid
posix_getpwnam
posix_getpwuid
posix_getrlimit
posix_getsid
posix_getuid
posix_initgroups
posix_isatty
posix_kill
posix_mkfifo
posix_mknod
posix_setegid
posix_seteuid
posix_setgid
posix_setpgid
posix_setsid
posix_setuid
posix_strerror
posix_times
posix_ttyname
posix_uname
eXTReMe Tracker