如果你想根据用户名而不是 UID 设置 UID,请尝试将其与 posix_getpwnam() 结合使用,
<?php
posix_seteuid (posix_getpwnam("www-data")["uid"]);
posix_setegid(posix_getpwnam("www-data")["gid"]);
?>
请注意,posix_getpwnam() 在每次调用时都会读取 /etc/passwd,如果你需要它运行得更快,这应该更快(只读取一次 passwd)
<?php
$posix_user_info=posix_getpwnam("www-data");
posix_seteuid ($posix_user_info["uid"]);
posix_setegid($posix_user_info["gid"]);
?>
要恢复到 root 用户,只需将它们设置为 0,
<?php
posix_seteuid(0);
posix_setegid(0);
?>