我有一个通过 samba 共享的目录。现在我将另一台计算机上的共享挂载到此共享内的目录。问题是,访问此共享时,此挂载的共享显示为空目录。
有谁知道为什么会发生这种情况,或者如何才能正确地访问另一台计算机的共享,就好像它是另一个共享的一部分一样?
添加示例:
如果有帮助的话,可以这样创建这样的场景:
# on host assume that we are `user1`
# assume that we use `[homes]` in `smb.conf` so our home directory is shared
mkdir -p d1/d2 && cd d1
# assume that there is a `host2`
# with a share named `share2` and a user `user2`
sudo mount.cifs -o username=user2 '//host2/share2' d2
# we check and see that it works and files from `share2` are visible
ls d2
# now we try to use this share from anywhere, for example locally
echo "ls d1/d2" | smbclient '\\localhost\user1' -U user1
# now we will only see an empty directory
答案1
经过调查,我似乎受到了如下所述的错误的影响: https://serverfault.com/questions/491464/directories-shown-as-files-when-sharing-a-mounted-cifs-drive
使用 samba 进行“重新共享”时似乎存在一个错误:由于一个错误,目录显示为文件。Samba 使用 inode 计数来确定这一点,而 cifs 将其设置为零。因此所有目录都显示为大小为零的文件。
建议的解决方案是重新编译 samba 的内核模块,但我认为这不是一个可行的解决方案。答案已经出来 3 年了,也许现在有人知道更好的解决方案。原始错误已在 cifs 和 samba 中标记为 WILL_NOT_FIX,似乎没有发生任何事情。
如果有人有更好的解决方案,我愿意听取他们的意见。