我写了一个简单的程序,名为suid.c
:
int main(int argc, char* argv[]) {
system(argv[1]);
}
用 gcc 编译它,然后设置 suid 权限(现在是 root 用户):
# gcc suid.c -o suid
# chmod +s suid
我尝试./suid id
在不同的虚拟机上使用 www-data 用户运行,但输出不同。
- kali 2019 中的输出:
id=33(www-data) gid=33(www-data) groups=33(www-data)
- ubuntu trusty(旧的 linux)中的输出:
uid=33(www-data) gid=33(www-data) euid=0(root) egid=0(root) groups=0(root),33(www-data)
这是为什么?Linux 有什么变化吗?