- 論壇徽章:
- 11
|
回復(fù) 1# chen_bo0302
real user/group ID 標(biāo)識(shí)了進(jìn)程的執(zhí)行者/創(chuàng)建者,real ID 通常在用戶登錄系統(tǒng)時(shí),由login(1)進(jìn)程讀取系統(tǒng)passwd/group 文件來設(shè)置
effective user/group ID 與supplementary group ID 共同決定了授予進(jìn)程執(zhí)行系統(tǒng)調(diào)用時(shí)的權(quán)限,effective ID 通常與real ID 具有相同的值,但可以通過一些系
統(tǒng)調(diào)用或執(zhí)行set-user/group-ID 程序來更改
set-user/group-ID 是文件屬性,而不是進(jìn)程屬性;當(dāng)設(shè)置了set-user-ID 權(quán)限位的文件被執(zhí)行時(shí),內(nèi)核會(huì)將進(jìn)程的effective user ID 設(shè)置為可執(zhí)行文件的屬主(擁有了文件
屬主的權(quán)限)
saved set-user/group-ID 用于set-user/group-ID 程序,在進(jìn)程執(zhí)行時(shí)保存effective user-user/group ID 當(dāng)前值的副本,使得進(jìn)程的effective ID 值可以在
real ID 與saved set ID 之間切換,實(shí)現(xiàn)臨時(shí)提升與降低權(quán)限
file-system user/group ID 是Linux 進(jìn)程的特有屬性,當(dāng)執(zhí)行文件系統(tǒng)相關(guān)的操作時(shí),使用file-system ID 和supplementary group ID 來決定授予進(jìn)程的權(quán)限
file-system ID 通常與相應(yīng)的effective ID 具有相同的值,且隨effective ID 的變化而變化
supplementary group ID 是指進(jìn)程的real user ID 所屬的附加組的GID
程序驗(yàn)證:
root用戶(id == 0)編輯程序pids.c并編譯- #define _GNU_SOURCE
- #include <stdio.h>
- #include <unistd.h>
- int main(void)
- {
- uid_t ruid, rgid, euid, egid, suid, sgid;
- ruid = getuid();
- rgid = getgid();
- euid = geteuid();
- egid = getegid();
-
- getresuid(&ruid, &euid, &suid);
- getresgid(&rgid, &egid, &sgid);
- printf("Real User-ID: %d\n", ruid);
- printf("Real Group-ID: %d\n", rgid);
- printf("Effective User-ID: %d\n", euid);
- printf("Effective Group-ID: %d\n", egid);
- printf("Saved set-user-ID: %d\n", suid);
- printf("Saved set-group-ID: %d\n", sgid);
- return 0;
- }
復(fù)制代碼- # gcc -m32 pids.c -o pids
復(fù)制代碼 新建普通用戶(id != 0)- # useradd user0 -m -s /bin/bash
復(fù)制代碼 復(fù)制pids程序到普通用戶的宿主目錄,并添加set-user-ID權(quán)限位- # chmod u+s /home/user0/pids
復(fù)制代碼 切換到普通用戶普通用戶運(yùn)行程序- $ id
- uid=1000(user0) gid=1000(user0) groups=1000(user0)
- $ ./pids
- Real User-ID: 1000
- Real Group-ID: 1000
- Effective User-ID: 0
- Effective Group-ID: 1000
- Saved set-user-ID: 0
- Saved set-group-ID: 1000
復(fù)制代碼 希望可以為你提供一些思路 |
|