组成员身份和setuid / setgid流程
其流程去缓和权限通过setuid()和setgid()似乎没有继承的UID / GID他们设置了组成员。 我有一个服务器进程,必须以root用户身份执行才能打开特权端口。后,它的去升级到一个特定的非privilleged UID / GID,1 -例如,其的用户foo(UID 73)。用户foo是组的成员bar: > cat /etc/group | grep bar bar:x:54:foo 因此,如果我以登录foo,则可以读取/test.txt具有以下特征的文件: > ls -l /test.txt -rw-r----- 1 root bar 10 Mar 8 16:22 /test.txt 但是,std=gnu99当以root 身份运行时,以下C程序(compile ): #include <stdio.h> #include <fcntl.h> #include <unistd.h> int main (void) { setgid(73); setuid(73); int fd = open("/test.txt", O_RDONLY); …