我用c语言封装了一条cat/etc/shadow的命令,设置程序的的suid位并把它的属主设为root,为什么以普通用户执行时,还是不能访问/etc/shadow?难道是exec执行新程序时不继承suid属性吗?//encapsulation.c#include#include#include#includeintmain(){printf("uidis%d\n",getuid());printf("euidis%d\n",geteuid());execlp("/bin/sh","sh","-c","echo$UID$EUID;/bin/cat/etc/shadow",(char*)NULL);return0;}➜testgccencapsulation.c-oencapsulation➜test./encapsulationuidis1000euidis1000/bin/cat:/etc/shadow:Permissiondenied➜testsudochownroot:rootencapsulation[sudo]passwordforinovker:➜test./encapsulationuidis1000euidis1000/bin/cat:/etc/shadow:Permissiondenied➜testsudochmodu+sencapsulation➜test./encapsulationuidis1000euidis0/bin/cat:/etc/shadow:Permissiondenied➜testsudo./encapsulationuidis0euidis0root:!:17655:0:99999:7:::daemon:*:17647:0:99999:7:::bin:*:17647:0:99999:7:::sys:*:17647:0:99999:7:::sync:*:17647:0:99999:7:::games:*:17647:0:99999:7:::man:*:17647:0:99999:7:::...
添加回答
举报
0/150
提交
取消