Php 临时更改正在运行的进程的标识
我想临时更改正在运行的根进程的标识 我读过这样做的方法,首先调用Php 临时更改正在运行的进程的标识,php,macos,posix,Php,Macos,Posix,我想临时更改正在运行的根进程的标识 我读过这样做的方法,首先调用setegid,然后调用seteuid 问题在于,这个群体不知何故被忽视了: <?php # This is executed as root. var_dump(posix_setegid(61)); # localaccounts(61) var_dump(posix_seteuid(502)); # bot(502) $fp = fopen("/tmp/test", "w+b"); system("ls -la
setegid
,然后调用seteuid
问题在于,这个群体不知何故被忽视了:
<?php
# This is executed as root.
var_dump(posix_setegid(61)); # localaccounts(61)
var_dump(posix_seteuid(502)); # bot(502)
$fp = fopen("/tmp/test", "w+b");
system("ls -la /tmp/test");
unlink("/tmp/test");
但我希望它能输出:
-rw-r--r-- 1 bot localaccounts 0 Feb 2 17:49 /tmp/test
我错过什么了吗
更新:它在linux机器上工作。这是不是有些奇怪的OSX怪癖?Mac os x源于Unix的BSD分支 根据BSD Unix语义,赋予新创建的文件的组所有权是无条件地从创建该文件的目录的组所有权继承的 (来源-我找不到更好的来源) 创建文件后,始终可以使用
chgrp
更改组
-rw-r--r-- 1 bot localaccounts 0 Feb 2 17:49 /tmp/test