簡體   English   中英

-SUID-無法以超級用戶身份運行“ -rwsr-xr-x”文件

[英]-SUID- Can't run a “-rwsr-xr-x” file as root

我正在使用Ubuntu 16.10。

我沿着書走,做着這樣的事情:

#include <stdio.h>

int main() {
    printf("Real UID:\t%d\n", getuid());
    printf("Effective UID:\t%d\n", geteuid());
}

為了在不使用sudo命令的情況下以sudo形式運行此文件,在使用gcc編譯后,我將所有者和組更改為root。

$ gcc -o test test.c
$ sudo chown root:root ./test
$ chmod u+s ./test
$ ls -l
-rwsr-xr-x 1 root root 8512 Mar 9 test

現在,這就是我執行文件時得到的。 我的UID是1000。

$ ./test
Real UID:        1000
Effective UID:   1000

我正在讀的書說結果應該是這樣的:

$ ./test
Real UID:        1000
Effective UID:   0

根的UID是0,對吧? 這是否意味着我正在以我自己的用戶權限運行-rwsr-xr-x文件,該文件由root擁有? 我不明白

您的書偏舊嗎? 似乎現代* nix變體廣泛忽略了可執行文件上的粘滯位:

[...] Linux內核會忽略文件上的粘滯位。 [...]在目錄上設置粘滯位時,該目錄中的文件只能由root或目錄所有者或文件所有者取消鏈接或重命名。[4]

https://zh.wikipedia.org/wiki/Sticky_bit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM