第四章 文件和目录 access

来源:互联网 发布:找工作最靠谱的软件 编辑:程序博客网 时间:2024/06/05 20:20

access

 

open打开一个文件时,使用有效用户ID和有效组ID进行文件存取许可检测

 

access使用实际用户ID和有效用户ID进行检测

 

//----------------------4_2.c--------------------------

 

#include <sys/types.h>

 

#include <fcntl.h>

 

#include "ourhdr.h"

 

#include "err_error.h"

 

int main(int argc,char *argv[])

 

{

 

       if(argc!=2)

 

              err_quit("usage: a.ou <pathname>");

 

       if(access(argv[1],R_OK)<0)  //使用实际用户ID和组ID测试

 

              err_ret("access error for %s",argv[1]);

 

       else

 

              printf("read access OK/n");

 

       if(open(argv[1],O_RDONLY)<0) //使用有效用户ID和组ID测试

 

              err_ret("open error for %s",argv[1]);

 

       else

 

              printf("open for reading OK/n");

 

       exit(0);

 

}

 

//-------------------------end---------------------------

 

king@king-laptop:~/blog$ ls -l 4_2.c

 

-rw-r--r-- 1 king king 526 2009-02-07 12:33 4_2.c

 

king@king-laptop:~/blog$ gcc -o 4_2 4_2.c ; ls -l 4_2

 

-rwxr-xr-x 1 king king 8722 2009-02-07 12:34 4_2

 

king@king-laptop:~/blog$ ./4_2 4_2.c

 

read access OK

 

open for reading OK

 

king@king-laptop:~/blog$ ls /home

 

king  lib  lost+found  stevens  uucp

 

king@king-laptop:~/blog$ sudo chown uucp 4_2 ; ls -l 4_2

 

[sudo] password for king:

 

-rwxr-xr-x 1 uucp king 8722 2009-02-07 12:34 4_2

 

king@king-laptop:~/blog$ sudo chown uucp 4_2

 

king@king-laptop:~/blog$ sudo chown uucp 4_2.c

 

king@king-laptop:~/blog$ ls -l 4_2*

 

-rwxr-xr-x 1 uucp king 8722 2009-02-07 12:34 4_2

 

-rw-r--r-- 1 uucp king  526 2009-02-07 12:33 4_2.c

 

king@king-laptop:~/blog$ sudo chmod 600 4_2.c

 

king@king-laptop:~/blog$ ls -l 4_2*

 

-rwxr-xr-x 1 uucp king 8722 2009-02-07 12:34 4_2

 

-rw------- 1 uucp king  526 2009-02-07 12:33 4_2.c

 

king@king-laptop:~/blog$ ./4_2 4_2.c     king没有权限访问uucp4_2.c

 

access error for 4_2.c: Permission denied

 

open error for 4_2.c: Permission denied

 

king@king-laptop:~/blog$ sudo chmod u+s 4_2           设置用户ID

 

king@king-laptop:~/blog$ ls -l 4_2*

 

-rwsr-xr-x 1 uucp king 8722 2009-02-07 12:34 4_2

 

-rw------- 1 uucp king  526 2009-02-07 12:33 4_2.c

 

king@king-laptop:~/blog$ ./4_2 4_2.c     有效用户为uucp,实际用户为king

 

access error for 4_2.c: Permission denied

 

open for reading OK

 

king@king-laptop:~/blog$

 

 

 

原创粉丝点击