IT技术博客大学习 共学习 共进步

linux下如何自动提升权限

PHPor 的blog 2011-06-13 13:33:45 浏览 4,443 次
问题: 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的身份了

    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 后,提升权限还是成功来,为什么?

建议继续学习

  1. mysql 1045(28000)错误 (阅读 5,481)
  2. 文件明明存在但是file_exists总是返回FALSE (阅读 4,900)
  3. Linux用户、用户组、文件权限学习笔记 (阅读 4,760)
  4. crontab异常,无法自动运行 (阅读 4,442)
  5. (oracle)11g与10g中alter session权限差异 (阅读 4,381)
  6. ZooKeeper权限控制初探 (阅读 3,660)
  7. IIS写权限利用续以及写权限漏洞来由解释 (阅读 3,000)
  8. mysql的权限信息的存储 (阅读 2,900)
  9. 浅析Windows的访问权限检查机制 (阅读 2,600)
  10. 文件权限之粘滞位 (阅读 2,582)