您好,登錄后才能下訂單哦!
實際用戶:表示你是誰,誰運行起來,用于標識信息eg:×××,邀請函身份,非會員
有效用戶:對某種資源是否具有某種權限,進程可能訪問某些資源,普通用戶不忍,身份變更才可訪問資源
例如:在Linux系統下,root用戶或普通用戶都可以使用passwd命令來修改密碼,修改密碼主要通過修改etc文件來實現,而shadow文件權限全空,只有root有權限修改此文件。故當普通用戶執行passwd命令時,它的權限在一瞬間得到提升,運行時以擁有者權限運行。
//創建文件test.c #include<stdio.h> int main() { printf("hello\n"); return 0; }
在root權限下,修改test4.c的權限為066,此時運行test4.c
運行結果:
現在添加進程實際用戶和有效用戶等信息。
#include<stdio.h> #include<stdlib.h> #include<unistd.h> int main() { printf("hello\n"); pid_t id=fork(); if(id<0) { perror("fork"); exit(1); } else if(id==0) { printf("pid: %d,ppid: %d,uid: %d,euid: %d,gid: %d,egid: %d\n",getpid(),getppid(),getuid(),geteuid(),getgid(),getegid()); } else { printf("pid: %d,ppid: %d,uid: %d,euid: %d,gid: %d,egid: %d\n",getpid(),getppid(),getuid(),geteuid(),getgid(),getegid()); } return 0; }
運行結果為:
注意:test4一直是000權限
現在回到普通用戶:運行./test4
現在就要回到root權限給test4加s權限啦
輸入chmod u+s test4,只用給可執行文件加,再回到普通用戶試試
此時euid變為0,為root權限的euid.set設置完成后,任意一個可運行命令的用戶(設置SUID位),以該文件擁有者權限運行-----SUID作用
同理,gid和egid的設置也一樣。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。