posix_seteuid
(PHP 4 >= 4.0.2, PHP 5, PHP 7)
posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
Описание
bool posix_seteuid
( int
$uid
)Устанавливает эффективный идентификатор пользователя. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) чтобы иметь возможность выполнить её.
Список параметров
-
uid
-
Устанавливаемый идентификатор пользователя.
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для управления процессами программ
- POSIX
- posix_access
- posix_ctermid
- posix_errno
- 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_setrlimit
- posix_setsid
- posix_setuid
- posix_strerror
- posix_times
- posix_ttyname
- posix_uname
Коментарии
if you want to set uid by username rather than uid, try combining it with posix_getpwnam(),
<?php
posix_seteuid (posix_getpwnam("www-data")["uid"]);
posix_setegid(posix_getpwnam("www-data")["gid"]);
?>
note that posix_getpwnam() reads /etc/passwd on each invocation, if you need it to go fast, this should be faster (only read passwd once):
<?php
$posix_user_info=posix_getpwnam("www-data");
posix_seteuid ($posix_user_info["uid"]);
posix_setegid($posix_user_info["gid"]);
?>
and to go back to being root, just set them to 0,
<?php
posix_seteuid(0);
posix_setegid(0);
?>