我有一组文件,虽然我有读取权限,cat
但无法通过这些文件访问。vim
父目录的权限设置如下:
drwxrws--- 2 test test_grp 94424 May 10 20:01 my_test_grp
然后我要访问的文件的权限设置如下:
-rwxrwx--- 1 test test_grp 3398 May 10 19:40 my_test_file.txt
当我执行时id -gn
,它返回以下内容:test_grp
当我尝试执行时cat
,我收到以下信息:
cat: my_test_file.txt: Permission denied
我尝试注销并重新登录终端,但无济于事。是否有其他建议的步骤来修复此问题?
另外,我没有sudo
访问权限。
更新
执行完后,df -h
我可以看到该目录所在的位置的文件系统是已安装的 NFS。这也可能是一个因素吗?
答案1
一种可能的解释是服务器上存在 NFS 无法表达的权限。通过网络传输的权限并不是决定访问是否被授权的因素:服务器来决定。通常,权限和访问控制决策基于相同的信息,因此它们是一致的。但是,如果过程中丢失了一些有关权限的信息,那么两者可能会不一致。
NFS 无法表达的权限的一些示例包括访问控制列表(您使用的 NFSv3 并不总是支持 ACL;NFSv4 有 ACL,但它们与 Linux 的不完全相同)和 Linux 安全框架,例如SELinux 和 AppArmor。
如果这是问题所在,那么在不访问服务器的情况下诊断它将需要大量的猜测。如果没有服务器管理员的帮助,您不可能解决此问题。