Я хочу временно изменить удостоверение работающего root процесса.
Я прочитал способ сделать это, сначала позвонить 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");
Выходы:
$ sudo php -f /tmp/test.php
bool(true)
bool(true)
-rw-r--r-- 1 bot wheel 0 Feb 2 17:49 /tmp/test
Но я ожидаю, что это выведет:
-rw-r--r-- 1 bot localaccounts 0 Feb 2 17:49 /tmp/test
Я что-то упустил?
ОБНОВЛЕНИЕ : Это работает на машине с Linux.Это какая-то странная причуда OSX?