我有一个名为 test 的文件没有 rwx 权限(我已经使用 chmod 删除了所有权限)
[root@dev]# ls -l 测试 ------------。 1 root root 21 Sep 7 22:22 测试
Q1) 我正在尝试运行以下代码来检查文件是否可以打开。返回给 fd 的值是正数。 fd 不应该是 -1。 ?
fd = open(fname, O_RDONLY);
if (fd == -1) {
/* Print error message */
return (-1);
}
close(fd);
Q2) 我什至能够 cat 文件。我cat文件的时候不应该有错误吗? [root@dev]#猫测试 这是一个测试文件。 [root@dev]#
注意:我使用的是 root 帐户。
最佳答案
简短回答:root 可以做任何事情。
更长的答案:通常,要以给定模式打开文件,POSIX 要求基于您的 uid 和 gid 的权限允许您请求的访问类型,或者您具有“适当的权限”,一个由实现定义的短语。在大多数现实世界的实现中,满足“适当权限”的条件之一是 root 用户 (uid 0)。
关于c - 即使没有权限,open() 调用也会成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311953/