我在unix / linux机器上遇到一个奇怪的问题:
我是一个群组的成员,我们称其为群组A,并且某个文件(具有不同的所有者)也属于群组A。该文件的权限是
-rw-rw----
因此,我希望我应该能够打开该文件,但我不是:当我尝试查看文件内容时(使用cat),我会收到“权限被拒绝”错误消息。
由于权限似乎是正确的,还有什么可能导致这种情况?是否有“覆盖”权限限制?如果是这样,我将如何查找?
我在unix / linux机器上遇到一个奇怪的问题:
我是一个群组的成员,我们称其为群组A,并且某个文件(具有不同的所有者)也属于群组A。该文件的权限是
-rw-rw----
因此,我希望我应该能够打开该文件,但我不是:当我尝试查看文件内容时(使用cat),我会收到“权限被拒绝”错误消息。
由于权限似乎是正确的,还有什么可能导致这种情况?是否有“覆盖”权限限制?如果是这样,我将如何查找?
Answers:
自从您被添加到A组以来,您是否注销并重新登录?
如果不是,您当前的登录过程将仅具有登录时具有的组成员身份,此后没有任何更改。并且该登录名的任何子进程将具有相同的组成员身份(即,如果您登录到X,则每个应用程序,包括终端仿真器和Shell)
您可以通过在另一个控制台上再次登录或通过ssh或类似方法exec sudo -u $(id -u -n) -i
(通过有效地杀死并用新的shell替换当前的shell-属于该shell的任何后台进程)来测试此情况。
使用NFS,这取决于您使用哪种安全模式,但是在传统的安全模式中,用户所属的组列表是由客户端发送到服务器的,并且可以发送的组数是有限制的( 16我上次检查)。
因此,客户说:我是uid 1234,顺便说一句,我是12、13、14组的成员...如果您属于16个以上的组,则该列表将被截断,并且会有多个组服务器不知道您是该服务器的成员。
这可能是对此的解释。只有本地和/或远程计算机的系统管理员才能通过更改安全模型或NFS服务器的设置或减少您所属的组的数量来执行此操作。
可能是ACL。看到
getfacl the-file
可能由于某种原因,您要进入的组设置不正确。检查与
id -a
关于什么
namei -xl "$(readlink -f the-file)"
getfattr -dm- the-file
sudo lsattr the-file
它所驻留的文件系统是什么类型?
系统中是否有任何Apparmor,SELinux或任何其他强制性访问控制?
您确定文件中不包含“权限被拒绝”文本,对;-)吗?