9.5. POSIX-функции
Кристиан Кентопп (Kristian Koehntopp) добавил к PHP модуль поддержки стандарта POSIX.1, еще известного как IEEE 1003.1. Этот стандарт определяет функциональность, обеспеченную процессами операционной системы. Некоторые функции этого раздела не входят в этот стандарт, но они традиционно имеются в операционных системах System V или BSD Unix.
Многие из этих функций доступны только пользователю root. Сценарии PHP выполняются только владельцем процесса Web-сервера, который обычно является отдельным пользователем, предназначенным только для этой цели. Работа Web-сервера под управлением пользователя root несет в себе опасность. Любой, имеющий возможность работать с файлом PHP, с помощью Web-сервера может получить полное управление системой. Однако необходимо помнить, что PHP может также компилироваться как автономная программа. В таком случае он может использоваться как любой другой процессор, работающий со сценариями.
Эти функции работают с C-функциями, указанными в названии функции после префикса posix_. За более подробной информацией советую обратиться к справочным страницам.
В листинге 9.93 демонстрируется работа многих POSIX-функций.

Листинг 9.93. POSIX-функции

<?php
print("Путь к терминалу: " . posix_ctermid() . "n"); print("Текущий рабочий каталог: " . posix_getcwd() . "n"); print("Идентификатор эффективной группы: " . posix_getegid() .
"n");
print("Идентификатор эффективного пользователя: " . posix_geteuid() . "n");
print(" Идентификатор группы: " . posix_getgid() . "n"); $groupInfo = posix_getgrgid(posix_getgid()); print(" Имя группы: " . $groupInfo['name'] . "n"); print("Дополнительные идентификаторы группы:" . implode(',', posix_getgroups()) . "n"); print("Регистрация: " . posix_getlogin() . "n"); print("Идентификатор группы процессов: " . posix_getpgid(posix_getpid()) . "n");
print(" Идентификатор текущей группы процессов: " . posix_getpgrp()
. "n");
print(" Идентификатор текущего процесса: " . posix_getpid() .
"n");
print("Идентификатор порождающего процесса: " . posix_getppid() .
"n");
print(" Информация о пользователе (posix_getlogin): ");
print_r(posix_getpwnam(posix_getlogin()));
print(" Информация о пользователе (): ");
print_r(posix_getpwuid(posix_geteuid()));
print(" Пределы ресурса: ");
print_r(posix_getrlimit());
print("SID: " . posix_getsid(posix_getpid()) . "n");
print("Настоящий идентификатор пользователя: " . posix_getuid() .
"n");
print("Системная информация: "); print_r(posix_uname());
?>

string posix_ctermid()
Функция posix_ctermid возвращает путь к терминалу. integer posix_errno()
Эта функция возвращает код последней ошибки, допущенной POSIX-функцией. 
string posix_getcwd()
Функция posix_getcwd возвращает текущий рабочий каталог. integer posix_getegid()
Функция posix_getegid возвращает эффективный идентификатор группы вызывающего процесса.
integer posix_geteuid()
Функция posix_geteuid возвращает эффективный идентификатор пользователя для процесса PHP.
integer posix_getgid()
Функция posix_getgid возвращает идентификатор текущей группы.
array posix_getgrgid(integer group)
Функция posix_getgrgid возвращает массив, описывающий доступ к базе данных по номеру группы. Возвращаются элементы gid, members, name и запись, соответствующая каждому члену группы.
array posix_getgrnam(string group)
Функция posix_getgrnam возвращает массив, описывающий групповую базу данных по имени группы. Возвращаются элементы gid, members, name и запись, соответствующая каждому члену группы.
array posix_getgroups()
Функция posix_getgroups возвращает дополнительные идентификаторы группы.
string posix_getlogin()
Функция posix_getlogin используется для получения имени пользователя, под управлением которого выполняется процесс PHP.
integer posix_getpgid(integer pid)
Функция posix_getpgid возвращает идентификатор группы для заданного идентификатора процесса.
integer posix_getpgrp()
Функция posix_getpgrp возвращает идентификатор группы текущего процесса.
integer posix_getpid()
Функция posix_getpid возвращает идентификатор процесса.
integer posix_getppid()
Функция posix_getppid возвращает идентификатор порождающего процесса.
array posix_getpwnam(string user)
Функция posix_getpwnam возвращает массив, описывающий запись в базе данных пользователей. Элементами массива являются dir, gecos, gid, name, passwd, shell и uid. 
array posix_getpwuid(integer user)
Функция posix_getpwuid возвращает массив, описывающий запись в базе данных пользователей на основании заданного идентификатора пользователя. Элементами этого массива являются dir, gecos, gid, name, passwd, shell и uid. Такие же элементы возвращает функция posix_getpwnam.