PHP Conference Nagoya 2025

posix_seteuid

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

posix_seteuidУстанавливает эффективный идентификатор пользователя для текущего процесса EUID

Описание

posix_seteuid(int $user_id): bool

Устанавливает эффективный идентификатор пользователя. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) чтобы иметь возможность выполнить её.

Список параметров

user_id

Устанавливаемый идентификатор пользователя.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Смотрите также

  • posix_geteuid() - Возвращает эффективный идентификатор пользователя текущего процесса EUID
  • posix_setuid() - Устанавливает UID текущего процесса
  • posix_getuid() - Возвращает фактический идентификатор пользователя текущего процесса UID

Добавить

Примечания пользователей 1 note

up
1
divinity76 at gmail dot com
4 years ago
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);
?>
To Top