linux文件权限问题

除了rwx权限以外,还有s权限,这就是设置用户ID和设置组ID,它能让进程有效用户ID和有效组ID等于程序拥有者的uid和gid

apue中的access.c,open函数以有效用户ID及有效用户组ID执行其访问权限测试,access函数以实际用户ID及实际用户组ID执行其访问权限测试

#include "include/apue.h"
#include 

int main(int argc, char *argv[])
{
    if (argc != 2)
        err_quit("usage: a.out ");
    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) < 0)
        err_ret("open error for %s", argv[1]);
    else
        printf("open for reading OK\n");
    exit(0);
}

open和access都失败
open和access都失败

将access文件属主设为root,并设置用户ID位
将access文件属主设为root,并设置用户ID位

设置用户ID位后,open成功,access失败
设置用户ID位后,open成功,access失败

你可能感兴趣的:(apue学习笔记)