歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

linux下如何自動提升權限

問題: httpd server是用web用戶執行的,如何才能通過httpd server來做root才能做到事情呢? 我想大概這樣可以: 我們知道linux上到可執行文件到屬主有一個s位,則該文件就可以seteuid到該用戶到權限來做事情,於是寫如下測試腳本:

  問題: 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 後,提升權限還是成功來,為什麼?

Copyright © Linux教程網 All Rights Reserved