免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1749 | 回复: 3
打印 上一主题 下一主题

[C] APUE第四涨ACCESS函数的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-12 11:08 |只看该作者 |倒序浏览
下面是代码:
#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) < 0)
        err_ret("open error for %s", argv[1]);
    else
        printf("open for reading OK\n");
    exit(0);
}




以下是代码的执行效果:
          ls -l a.out
         -rwxrwxr-x 1 sar         15945 Nov 30 12:10 a.out
         $ ./a.out a.out
         read access OK
         open for reading OK
         $ ls -l /etc/shadow
         -r-------- 1 root         1315 Jul 17 2002 /etc/shadow
         $ ./a.out /etc/shadow
         access error for /etc/shadow: Permission denied
         open error for /etc/shadow: Permission denied
         $ su                        become superuser
         Password:                  enter superuser password
         # chown root a.out         change file's user ID to root
         # chmod u+s a.out          and turn on set-user-ID bit
         # ls -l a.out              check owner and SUID bit
         -rwsrwxr-x 1 root     15945 Nov 30 12:10 a.out
         # exit                     go back to normal user
         $ ./a.out /etc/shadow
         access error for /etc/shadow: Permission denied
         open for reading OK
我的疑问是,为什么a.out变成superuser后,会是access error  。
a.out已经变成root了,而shadow对于root应该是可读的吧。

论坛徽章:
0
2 [报告]
发表于 2008-11-12 11:59 |只看该作者
看一下 access的帮助页

  1. The check is done with the process's real UID and GID, rather than with
  2.        the  effective  IDs  as  is done when actually attempting an operation.
  3.        This is to allow set-user-ID programs to easily determine the  invoking
  4.        user's authority.
复制代码

论坛徽章:
0
3 [报告]
发表于 2008-11-12 12:38 |只看该作者
楼主应该知道什么是Set UID,access测试的是谁的权限,

论坛徽章:
0
4 [报告]
发表于 2008-11-13 21:56 |只看该作者
access 测试的是 real user
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP