-SUID- 无法以 root 身份运行“-rwsr-xr-x”文件

-SUID- 无法以 root 身份运行“-rwsr-xr-x”文件

我正在使用 Ubuntu 16.10。我刚刚在 Stack Overflow 上问了这个问题,但我被建议在这个论坛上提问。

我按照一本书的说明做了如下事情:

#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

root 的 UID 是 0,对吗?这是否意味着我正在运行禁用 RWSR-XR-X该文件由 root 用户所有,我可以用自己的用户权限访问它吗?我不明白。

答案1

您可能将文件放在使用 挂载的分区上nosuid。您可以键入mount以查看是否是这种情况。如果是,请将文件移动到其他分区或使用 重新挂载该分区-o suid(请注意,执行后者可能会有安全隐患)。

相关内容