unix 权限(以及 smb 共享的影响)

unix 权限(以及 smb 共享的影响)

我有一个 NAS,几年前(当时我使用的是 Linux 机器),我在上面复制了一些文件,将其挂载为 NFS 共享。

几年后...几天前,我尝试通过 SMB 从 Windows 计算机访问相同的文件/文件夹。结果:权限被拒绝。我无法访问、移动、删除,什么都不能。即使具有管理员权限。我尝试从 Mac 机器(仍然使用 SMB)进行访问,确信它是一个 Unix 引擎......结果相同。即使有根。

然后我在 Linux(仍然使用 SMB)上尝试,再次得到相同的结果。然后我切换到 NFS 挂载,现在就可以完全访问,没有任何问题。

我试图调查原因,但仍然毫无头绪。

我创建了示例文件夹的一些副本:

在此输入图像描述

STUDY是原始的:请注意它具有扩展属性,我认为这就是问题所在,因为我可以使用 SMB 管理的所有其他文件和文件夹都没有它们。

所以我做的第一件事是创建一个名为“STUDYtest”的副本,并尝试使用以下命令删除属性:

sudo setfacl -Rbk STUDYtest/

事实上,它删除了扩展属性,正如您从上面的屏幕截图中看到的那样,但该文件夹和其中的文件仍然无法通过 SMB 进行管理(在此过程中,它还失去了其他人的写入权限......不要问我为什么! )。

然后,我尝试使用以下命令将该文件夹复制到另一个位置,而不保留属性:

cp -r --no-preserve=mode,ownership STUDY/ /home/alberto/

然后我将其重命名为STUDYnopreserve并将其复制回 NAS,这一次,我可以从 Windows 通过 SMB 对其进行管理。

我不明白为什么!对我来说它们看起来是一样的:

在此输入图像描述

在此输入图像描述

它们都有扩展属性,唯一的区别是所有者?

我想避免在其他地方复制并返回所有数据(3+TB),最重要的是,我想了解背后的原因。

有人可以指出我正确的方向或建议下一个测试吗?

答案1

我进行了其他测试,发现我之前的解决方法要完全发挥作用,需要将副本(带有选项no-preserve)复制到不同的位置/驱动器,然后返回到原始位置/驱动器(如果数据需要保留在同一位置)。否则,内容可以访问,但远程 SMB 用户无法修改或删除它们。

我没有进一步调查原因,因为与此同时,我已经找到了我认为的最终解决方案,并且它比我之前尝试过的任何其他方法都简单得多。

简单地:

sudo chmod -R 777 /path

相关内容