尝试使用 Windows 资源管理器重命名 NAS 共享上的目录时出现错误消息

尝试使用 Windows 资源管理器重命名 NAS 共享上的目录时出现错误消息

我使用 Windows 10 笔记本上的 SSH 将文件夹复制SichTmp02122022_Profiles到目录schr(均位于我的 NAS 即 My Cloud EX2 Ultra 的同一共享上),如下所示:

cp --no-dereference --preserve=all -r SichTmp02122022_Profiles schr/

SichTmp02122022_Profiles它本身包含目录和大量文件。当我尝试使用 Notebook 中的 Windows 资源管理器更改SichTmp02122022_Profiles目录中的 (copy)schr名称时,我收到一条错误消息,提示我需要来自 MYCLOUDEX2ULTRA\admin(即 NAS 设备)的凭据才能进行更改。但是,我可以像那样重命名其子目录以及父目录schr

以下是 Shell 输出的文件夹凭据:

root@MyCloudEX2Ultra Thunderbird_kS # ls -l
drwxrwxrwx    3 admin    share         4096 Jul  8 16:01 Orig02122022_Profiles
drwxr-xr-x    3 root     root          4096 Dec  2 21:33 schr
root@MyCloudEX2Ultra Thunderbird_kS # ls -l schr/
drwxrwxrwx    3 admin    share         4096 Dec  2 18:00 SichTmp02122022_Profiles

schr是通过 SSH 创建的,因此有不同的所有者,root。)

至于 Samba,我使用 Windows 资源管理器从 Notebook 以组成员的身份进行访问nobody。我使用 SSH root(与 不同,admin它不是,而是一个普通用户帐户,可以使用 NAS Web 界面访问特定配置设置)。显然使用了 SMB2,NAS/Samba 和 Notebook 都应该可以使用 SMB3,但根据 Wireshark 捕获,似乎没有启用。NAS 的 Linux 版本是 4.14.22。

我非常想知道背后的原因,以便让事情变得干净和正确,因为副本是作为备份,我必须依靠数据全部将来的功能。我想指出,我不是在寻找解决方法,而是想正确地解决问题。我已经看过 Samba,但没有发现明显的缺陷(顺便说一句,我不是专业人士)。我也试图找到有关文件权限的线索。我自己想不出一个合乎逻辑的理由,尽管我尽力了。我将不胜感激任何提示或想法。

编辑:

为了消除对我所经历的事情的可能怀疑,我重现了该过程,随后将按发生时间的降序描述所有内容。除了上面已经给出的解释之外,只有一件事是额外的,那就是我将原始复制命令与具有较少可选参数的命令进行比较。

root@MyCloudEX2Ultra Thunderbird_kS # mkdir A_SSH
root@MyCloudEX2Ultra Thunderbird_kS # ls -l
drwxr-xr-x    3 root     root          4096 Dec  5 11:43 A_SSH
drwxrwxrwx    3 admin    share         4096 Jul  8 16:01 Orig02122022_Profiles

不同的cp论点:

root@MyCloudEX2Ultra Thunderbird_kS # cp -r Orig02122022_Profiles A_SSH/
root@MyCloudEX2Ultra Thunderbird_kS # ls -l A_SSH/
drwxr-xr-x    3 root     root          4096 Dec  5 11:43 Orig02122022_Profiles
root@MyCloudEX2Ultra Thunderbird_kS # ls -l A_SSH/Orig02122022_Profiles/
drwxr-xr-x   21 root     root          4096 Dec  5 11:46 f39s819w.sdfh
root@MyCloudEX2Ultra Thunderbird_kS # ls A_SSH/Orig02122022_Profiles/f39s819w.sdfh/
AlternateServices.txt
SecurityPreloadState.txt
abook.mab.bak
abook.sqlite
abook.v2.sqlite
blist.sqlite
blocklist-addons.json
blocklist-gfx.json
blocklist-plugins.json

使用 Windows 资源管理器成功将 A_SSH 重命名为 C_SSH_Expl (为什么这个?):

root@MyCloudEX2Ultra Thunderbird_kS # ls -l
drwxr-xr-x    3 root     root          4096 Dec  5 11:43 C_SSH_Expl
drwxrwxrwx    3 admin    share         4096 Jul  8 16:01 Orig02122022_Profiles

尝试Orig02122022_Profiles使用 Windows 资源管理器重命名目录时出错。

尝试C_SSH_Expl/Orig02122022_Profiles/f39s819w.sdfh使用 Windows 资源管理器重命名子目录时出错。

当使用复制命令cp --no-dereference --preserve=all -r时,如上所述,例外C_SSH_Expl/Orig02122022_Profiles/f39s819w.sdfh使用Windows 资源管理器重命名子目录[...]/o39s819w.sdfh成功:

root@MyCloudEX2Ultra Thunderbird_kS # ls -l C_SSH_Expl/
drwxrwxrwx    3 admin    share         4096 Dec  5 12:24 Orig02122022_Profiles
root@MyCloudEX2Ultra Thunderbird_kS # ls -l C_SSH_Expl/Orig02122022_Profiles/
drwxrwxrwx   21 admin    share         4096 Dec  4 14:25 o39s819w.sdfh

对我来说不合适的是,为什么我可以将根目录重命名为nobody?

答案1

schr是通过 SSH 创建的,因此有不同的所有者,root。)

这就是问题的原因。重命名目录条目(文件、目录等)会修改其所在的目录。您无权这样做。

确定所有权后schr就好了。

相关内容