自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一個Unix SUID程序

系統(tǒng) 其他OS
該程序?qū)⒁粋€Unix SUID的進(jìn)程轉(zhuǎn)變?yōu)橐粋€超級用戶進(jìn)程。將此程序編譯成可執(zhí)行目標(biāo)文件parent ,用另一個簡單的程序進(jìn)行檢驗.

Unix操作系統(tǒng)有很多值得學(xué)習(xí)的地方,這里我們主要介紹Unix操作系統(tǒng)中的一個Unix SUID程序,大家一起來學(xué)習(xí)下吧!希望對大家對Unix操作系統(tǒng)的學(xué)習(xí)有所幫助。

下面的程序是用來演示Unix文件的Unix SUID,取名為parent.c
 

  1. QUOTE:   
  2. #include 〈stdio.h〉  
  3. #include 〈stdlib.h〉  
  4. #include 〈unistd.h〉  
  5. #include 〈sys/types.h〉  
  6. int  
  7. main(int argc,char **argv)  
  8. {  
  9. int i;  
  10. char **argu;  
  11. uid_t uid;  
  12. uid=geteuid(); //獲取調(diào)用進(jìn)程的有效用戶ID  
  13. if(argc<2){  
  14. fprintf(stderr,"usage: %s \n",argv[0]);  
  15. exit(0);  
  16. }  
  17. if(setuid(uid)<0){  
  18. fputs("setuid error.\n",stderr);  
  19. exit(1);  
  20. } //將調(diào)用進(jìn)程的實際用戶ID設(shè)置為有效用戶ID  
  21. if((argu=(char**)malloc(argc*sizeof(char*)))==NULL){  
  22. fputs("malloc error.\n",stderr);  
  23. exit(1);  
  24. } //為execvp的參數(shù)指針數(shù)組分配內(nèi)存空間  
  25. for(i=0;i argu[argc-1]=(char *)0; //參數(shù)指針數(shù)組以空指針結(jié)尾  
  26. if(execvp(argv[1],argu)<0){  
  27. fputs("exec error.\n",stderr);  
  28. exit(1);  
  29. } //用execvp調(diào)用命令行參數(shù)指定的程序  
  30. exit(0);  
  31. }  

該程序?qū)⒁粋€Unix SUID的進(jìn)程轉(zhuǎn)變?yōu)橐粋€超級用戶進(jìn)程。將此程序編譯成可執(zhí)行目標(biāo)文件parent ,用另一個簡單的程序進(jìn)行檢驗

 

  1. int main(void){  
  2. printf("real uid=%d, effective uid=%d\n",getuid(),geteuid());  
  3. exit(0);  

編譯為printuids。運行程序得到下列結(jié)果:

 

  1. $ ./parent printuids //正常執(zhí)行,無特權(quán)  
  2. real uid=506, effective uid=506 
  3. $ su root  
  4. Password:  
  5. # chown root parent //更改所有者  
  6. # chmod u+s parent //添加SUID  
  7. # exit  
  8. $ ./parent printuidsv real uid=0, effective uid=0 //該進(jìn)程轉(zhuǎn)變?yōu)槌売脩暨M(jìn)程  
  9.  

 

某一進(jìn)程一旦轉(zhuǎn)變?yōu)槌売脩暨M(jìn)程,將擁有系統(tǒng)的完全控制權(quán)。比如,我們可以這樣執(zhí)行演示程序:
 

  1. $ ./parent useradd hacker  
  2. $ ./parent passwd hacker 

故而,Unix SUID的程序往往伴隨著一定的安全問題。在早期的Unix環(huán)境中,Unix SUID/SGID的程序調(diào)用system()函數(shù)就存在著安全性漏洞。

【編輯推薦】

  1. 學(xué)習(xí)使用自定義Unix系統(tǒng)功能鍵
  2. 選用Unix系統(tǒng)交換區(qū)的指導(dǎo)方針
  3. Unix系統(tǒng)交換區(qū)動態(tài)設(shè)置及其他知識講解
  4. Unix系統(tǒng)交換區(qū)類型大講堂
  5. Unix系統(tǒng)數(shù)據(jù)庫及通信軟件的啟停處理
責(zé)任編輯:小霞
相關(guān)推薦

2010-05-06 16:45:17

Unix SUID

2010-05-06 16:26:02

Unix SUIDSGID

2010-04-15 17:29:32

2012-09-24 11:46:24

IBMdw

2010-05-11 14:30:01

2013-06-13 11:07:52

2015-02-13 10:06:20

2010-05-10 13:21:12

Unix FreeBS

2010-04-20 14:43:01

Unix操作系統(tǒng)

2010-04-30 01:17:37

unix鎖

2020-02-22 21:51:43

程序員Microsoft SServerSQL

2021-04-19 11:16:17

小程序微信開發(fā)

2010-05-10 18:28:11

Unix系統(tǒng)

2011-05-11 10:58:39

iOS

2014-01-06 09:33:32

程序員管理

2010-04-09 11:11:34

Unix操作系統(tǒng)

2010-04-29 10:31:08

Unix程序

2020-10-25 08:52:19

Unix操作系統(tǒng)TrueOS

2009-10-14 09:58:43

VB.NET程序

2020-10-05 21:13:37

程序員技能開發(fā)者
點贊
收藏

51CTO技術(shù)棧公眾號