【发布时间】:2020-02-17 18:59:46
【问题描述】:
我写了一个名为suid.c的简单程序:
int main(int argc, char* argv[]) {
system(argv[1]);
}
用 gcc 编译,然后设置 suid 权限(现在是 root 用户):
# gcc suid.c -o suid
# chmod +s suid
我尝试在不同的虚拟机上使用 www-data 用户运行./suid id,但输出不同。
- 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 有什么变化吗?
【问题讨论】:
-
这可能与不同shell的删除SUID权限的差异有关。
-
man id在 Kali 上说了什么?它是否说它输出有效的用户和组ID?运行id说明了什么? -
请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How to Ask
-
@Rob 抱歉,我会尽快更新。