Hirdetés

Új hozzászólás Aktív témák

  • 1ed

    csendes tag

    válasz iceQ! #3562 üzenetére

    Szia!
    A megoldás.
    A felhasználók és az egyes felhasználókhoz tartozó csoportok listája:

    <?php
    $users=file("/etc/passwd");
    $groups=file("/etc/group");
    $data = array();
    $group_data = array();

    foreach ($users as $user)
    {
    list($username, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $user);
    $data[$username] = $gid;
    }

    foreach ($groups as $group)
    {
    list($groupname, $pass, $gid, $members) = explode(":", $group);
    $keys = array_keys($data, $gid);

    if (!empty($keys))
    {
    foreach ($keys as $key)
    {
    $data[$key] = $groupname;
    }
    }

    if ($members != "\n")
    {
    $group_data[$groupname] = explode(',', trim($members));
    }

    }

    foreach ($group_data as $groupname => $users)
    {
    foreach ($users as $user)
    {
    $data[$user] .= ', '. $groupname;
    }
    }

    var_dump($data);

    Egy kicsit sok benne a ciklus, de működik.

Új hozzászólás Aktív témák