グループメンバーシップとsetuid / setgidプロセス
プロセスデエスカレート経由権限setuid()とsetgid()UID / GID彼らはセットのグループメンバーシップを継承していないようです。 特権ポートを開くためにrootとして実行する必要があるサーバープロセスがあります。その後、特定の非特権uid / gid 1にエスカレートします-たとえば、ユーザーfoo(UID 73)のuid / gid 。ユーザー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ルートを実行すると、次のCプログラム(コンパイル)が表示されます。 #include <stdio.h> #include <fcntl.h> #include <unistd.h> int main (void) { setgid(73); setuid(73); int fd = open("/test.txt", O_RDONLY); …