posix_seteuid
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
posix_seteuid — Set the effective UID of the current process
说明
posix_seteuid(int
$user_id
): boolSet the effective user ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function.
参数
-
user_id
-
The user id.
返回值
成功时返回 true
, 或者在失败时返回 false
。
参见
- posix_geteuid() - Return the effective user ID of the current process
- posix_setuid() - Set the UID of the current process
- posix_getuid() - Return the real user ID of the current process

User Contributed Notes 1 note
divinity76 at gmail dot com ¶
1 year 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);
?>
备份地址:http://www.lvesu.com/blog/php/function.posix-seteuid.php