私は次のプログラムを使用しており、( chown root XXX; chmod 4755 XXX
root として実行して) suid しましたが、出力はまだruid 1000, euid 1000, suid 1000
です。ここで uid がゼロになるべきではありませんか?
#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
int main()
{
uid_t ruid, euid, suid;
if (! getresuid (&ruid, &euid, &suid))
printf ("ruid %d, euid %d, suid %d\n", ruid, euid, suid);
else
perror ("getresuid");
return 0;
}
ls -l の出力:
-rwsr-xr-x 1 root root 9.7K May 1 11:36 test*