小编sin*_*ers的帖子

suid-root 没有效果

apue 的一个程序。

#include "apue.h"
#include <fcntl.h>

int main(int argc, char *argv[])
{
    if(argc!=2)
        err_quit("usage: a.out <pathname>");

    if(access(argv[1], R_OK)<0)
        err_ret("access error for %s",argv[1]);
    else
        printf("read access OK\n");
    if (open(argv[1], O_RDONLY)) {
        err_ret("open error for %s", argv[1]);
    } else {
        printf("open for reading OK\n");
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我将它编译为一个名为的可执行文件,4-2并更改了所有者并设置了 suid,这是以下输出ls -l

-rwsr-xr-x 1 root sinners 8490 Jan  7 18:50 4-2*
Run Code Online (Sandbox Code Playgroud)

/etc/shadow

-rw------- 1 root root 421 Jan  4 01:29 /etc/shadow
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时:

user% ./4-2 /etc/shadow 
access …
Run Code Online (Sandbox Code Playgroud)

setuid permissions files

6
推荐指数
1
解决办法
348
查看次数

标签 统计

files ×1

permissions ×1

setuid ×1