问题: httpd server是用web用户执行的,如何才能通过httpd server来做root才能做到事情呢? 我想大概这样可以:
我们知道linux上到可执行文件到属主有一个s位,则该文件就可以seteuid到该用户到权限来做事情,于是写如下测试脚本:
====== agent.c=========
#include
#include
#include
#include
int main(int ac, char ** av) {
seteuid(0);
printf("%d", geteuid()); // 返回0
// 这里干活就是root的身份了
【linux下如何自动提升权限】return 0;
}
========================
编译文件:
gcc -o agent agent.c
生成文件:
-rwxr-xr-x 1 root root 7213 2011-06-13 00:02 agent
修改文件属性:
chmod +s agent
-rwsr-sr-x 1 root root 7213 2011-06-13 00:02 agent
执行agent:
./agent
0
返回结果为0,说明提升权限成功了
------------------------------
问题: 按说如果添加来s位,则非属主用户不应该有写权限,换言之,如果非属主用户有来写权限,则s位应该无效;但事实上, chmod a+w agent 后,提升权限还是成功来,为什么?
推荐阅读
- 梦到下山是什么意思啊 梦到下山路很陡很危险很难走
- 电脑为什么会死机?这几点原因需要了解一下
- 苏亚雷斯|对比一下职业生涯的轨迹,你会发现苏亚雷斯要比莱万精彩得多!
- 叩桌的由来 叩桌的典故
- 菁菁茶树花茶品天下
- 淋浴龙头如何选购 淋浴龙头选购指南
- 梦见自已站在水里 梦见自己下半身在水里
- 安装纸面石膏板吊顶如何施工
- 唐宋如何饮茶 怎么饮茶
- 胶州湾海底隧道最深多少米 青岛胶州湾隧道海底下多少米