从我的 Windows 10 笔记本电脑使用 SSH,我将文件夹复制SichTmp02122022_Profiles
到目录schr
(都位于我的 NAS 的同一个共享上,一个 My Cloud EX2 Ultra)根据:
cp --no-dereference --preserve=all -r SichTmp02122022_Profiles schr/
SichTmp02122022_Profiles
拥有自己的目录和很多文件。当尝试使用 Windows Explorer 从 Notebook 更改SichTmp02122022_Profiles
目录中的(副本)名称时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 资源管理器nobody
。我正在使用 SSH admin
(这是根成员)。显然使用了 SMB2,SMB3 应该可以同时用于 NAS/Samba 和笔记本电脑,但根据 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
像[...]/o39s819w.sdfh
Windows 资源管理器一样成功重命名子目录:
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
对我来说不合适的是,为什么我可以将 root 拥有的目录重命名为 nobody?
这就是你的问题的原因。重命名目录条目(文件、目录等)是在修改它所在的目录。您无权这样做。
修复所有权
schr
,你很好。