拥有该文件和目录的用户的权限被拒绝

拥有该文件和目录的用户的权限被拒绝

用户 www-data 拥有“/shared/data”目录,并且对“/shared”目录拥有完全权限。

root@cloud:/shared# ls -al
total 28
drwxrwxrwx  4 root     root     4096 Sep 16 19:06 .
drwxr-xr-x 21 root     root     4096 Sep 16 00:44 ..
drwxrwx--- 21 www-data www-data 4096 Nov  7 16:02 data
drwxrwxrwx  2 root     root     4096 Sep 16 00:22 @Recycle

root@cloud:/# ls -al /
...
drwxrwxrwx   4 root root       4096 Sep 16 19:06 shared
...

此目录中没有任何其他用户拥有的文件。

for i in $(find /shared/data); do stat -c "%U %G" ''"$i"'' >> /tmp/output.txt; done
cat /tmp/output.txt | sort -u
www-data www-data

Selinux 设置为宽容。

但是,当我运行时:

root@cloud:/shared# sudo -u www-data ls -al /shared/
ls: cannot open directory '/shared/': Permission denied
root@cloud:/shared# sudo -u www-data ls -al /shared/data/
ls: cannot access '/shared/data/': Permission denied

位置“/shared”通过“/etc/fstab”中的以下条目通过 NFS 安装。

server.fully.qualified.domain:/shared/data /shared/ nfs4 _netdev,nofail,rw  0   0

这到底是怎么回事?其实几周前它就正常工作了,而且我没有做任何重要更改。

审计日志没有显示任何有趣的内容,syslog 没有显示任何有趣的内容,dmesg 没有显示任何有趣的内容。

Pathllld显示:

root@cloud:/# sudo -u www-data /pathlld/pathlld /shared/data/
drwxr-xr-x 22 root root 4096 Nov  7 23:23 /
/dev/mapper/ubuntu--vg-ubuntu--lv on / type ext4 (rw,relatime)
drwxrwxrwx 4 root root 4096 Sep 16 19:06 /shared
server.fully.qualified.domain:/shared/data on /shared type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.4,local_lock=none,addr=192.168.1.2,_netdev)
/bin/ls: cannot access '/shared/data': Permission denied

root@cloud:/# sudo -u www-data /pathlld/pathlld /shared
drwxr-xr-x 22 root root 4096 Nov  7 23:23 /
/dev/mapper/ubuntu--vg-ubuntu--lv on / type ext4 (rw,relatime)
drwxrwxrwx 4 root root 4096 Sep 16 19:06 /shared
server.fully.qualified.domain:/shared/data on /shared type nfs4      (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.4,local_lock=none,addr=192.168.1.2,_netdev)

答案1

答案是 NFS 中有一个安全功能,可以在 NFS 服务器和客户端上检查用户权限。将 www-data 用户添加到服务器并使两个服务器之间的用户 ID 和组 ID 匹配,可以使其再次工作。实际上有人从 NFS 服务器中删除了 www-data 用户,这使得它突然停止工作(而它本来可以正常工作)。

相关内容