PHP Doku:: Liefert zu einer Benutzer-ID Informationen über diese Benutzerin - function.posix-getpwuid.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzErweiterungen zur ProzesskontrollePOSIXPOSIX Funktionenposix_getpwuid

Ein Service von Reinhard Neidl - Webprogrammierung.

POSIX Funktionen

<<posix_getpwnam

posix_getrlimit>>

posix_getpwuid

(PHP 4, PHP 5)

posix_getpwuidLiefert zu einer Benutzer-ID Informationen über diese Benutzerin

Beschreibung

array posix_getpwuid ( int $uid )

Gibt ein Array mit Informationen über die Benutzerin zurück, auf die die angegebene ID verweist.

Parameter-Liste

uid

Die Benutzerkennung

Rückgabewerte

Gibt ein assoziatives Array mit den folgenden Elementen zurück:
Das Benutzerinformation-Array
Element Beschreibung
name Das name-Element enthält den Benutzernamen. Es handelt sich dabei nicht um den wirklichen, kompletten Namen, sondern um einen kurzen "Bezeichner" der Benutzerin mit normalerweise weniger als 16 Zeichen.
passwd Das passwd-Element enthält das verschlüsselte Passwort der Benutzerin. Häufig, zum Beispiel wenn auf einem System "shadow"-Passwörter verwendet werden, wird stattdessen ein Sternchen zurückgegeben.
uid Die Benutzer-ID sollte die selbe wie der Parameter uid sein und ist von daher redundant.
gid Die Gruppen-ID der Benutzerin. Benutzen Sie die Funktion posix_getgrgid(), um den Gruppennamen und eine Liste der Gruppenmitglieder aufzulösen.
gecos GECOS ist ein veralteter Begriff, der sich auf das finger-Informationsfeld auf einem Honeywell Stapelverarbeitungssystem bezieht. Das Feld gibt es aber immer noch und sein Inhalt wurde durch POSIX formalisiert. Es enthält eine durch Komma getrennte Liste, bestehend aus dem kompletten Namen der Benutzerin, der Telefonnummer des Büros, der Zimmernummer des Büros und der privaten Telefonnummer. Auf den meisten Systemen ist nur der komplette Name der Benutzerin verfügbar.
dir Dieses Element enthält den absoluten Pfad des Homeverzeichnisses der Benutzerin.
shell Das shell-Element enthält den absoluten Pfad zur standardmäßigen Shell der Benutzerin.

Beispiele

Beispiel #1 posix_getpwuid()-Beispiel

<?php

$benutzerinfo 
posix_getpwuid(10000);

print_r($benutzerinfo);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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

Siehe auch

  • posix_getpwnam() - Liefert zu einem Benutzernamen Informationen über diese Benutzerin
  • POSIX GETPWNAM(3)-Manpage


6 BenutzerBeiträge:
- Beiträge aktualisieren...
ddascalescu at gmail dot com
9.04.2008 4:14
Correction regarding my note below: get_current_user() does *not* get the name of the user the script is running as. Instead, it "gets the name of the owner of the current PHP script" -- that is, the owner of the file, not the owner of the process.

To properly get the running user, test if function_exists('posix_getpwuid') and if not, assume you're running on Windows and call getenv('USERNAME').
ddascalescu at gmail dot com
5.04.2008 3:39
On Windows, posix_getpwuid() is not implemented , but if you just want the username of the current user, you can use get_current_user().
mehmet at karakaya dot us
19.03.2006 20:45
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.
Nikolai-Zujev-(at)-Gmail-dot-Com
25.09.2004 23:05
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.
rolf dot winterscheidt at rowitech dot de
28.05.2003 13:34
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 at brandeis dot edu
22.02.2000 2:54
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:

$_["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)



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)