Samba 共享文件夹名称在 Linux 计算机上显示不正确

Samba 共享文件夹名称在 Linux 计算机上显示不正确

我有一台运行 OMV 5 的 NAS 服务器,用于存储个人数据(文档、照片、视频等)。我使用 Samba 共享来自 NAS 的数据,并在用于访问共享数据的客户端上运行 Fedora 33。

我遇到的问题是auxNAS 上命名的文件夹显示为AHY9U3~9Fedora 客户端上的文件夹,请参见下面的示例 在此输入图像描述 左侧 tmux 面板中的工作目录位于客户端上,而右侧面板中的工作目录位于 NAS 上。我发现很奇怪的是,我可以使用奇怪的名称或文件夹在 NAS 上的正确名称来访问客户端上的文件夹。

当我尝试使用客户端上运行的软件在客户端和 NAS 之间同步数据时,偶然发现了这个“错误”。我有一堆名为 aux 的文件夹分散在整个文件夹层次结构中,同步软件为它们标记了一个差异,而问题实际上是它们的名称在客户端上的映射方式。

我不知道是什么原因导致了这个问题,最重要的是,如何解决它。我还想知道是否还有其他文件夹名称被错误地映射到客户端。

请找到以下客户端和服务器的软件版本信息 服务器 samba 版本: Samba 版本 4.9.5-Debian 客户端 samba 版本: 版本 4.13.12 客户端信息:

  • 内核版本 - 5.14.13-100.fc33.x86_64
  • 肉桂版本 - 4.8.6

我找到了一些相关的帖子,见下文,但是,根据 samba 规则,我认为这aux是一个有效的文件名,不是吗?

  1. samba如何显示名称中带有冒号的文件?
  2. 不修改名称会导致音乐在 Windows 10 Samba 上无法播放

编辑:下面是 smb.conf 中的全局部分和相应的共享部分,

[global]
workgroup = WORKGROUP
server string = %h server
dns proxy = no
log level = 0
log file = /var/log/samba/log.%m
max log size = 1000
logging = syslog
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = no
unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY
guest account = nobody
load printers = no
disable spoolss = yes
printing = bsd
printcap name = /dev/null
unix extensions = yes
wide links = no
create mask = 0777
directory mask = 0777
use sendfile = yes
aio read size = 16384
aio write size = 16384
time server = no
wins support = no
multicast dns register = no
# Special configuration for Apple's Time Machine
fruit:aapl = yes
[test]
path = hidden-path/test/
guest ok = no
guest only = no
read only = no
browseable = yes
inherit acls = yes
inherit permissions = no
ea support = no
store dos attributes = no
vfs objects = 
printable = no
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
hide special files = yes
follow symlinks = yes
hide dot files = yes
valid users = 
invalid users = 
read list = 
write list =

EDIT2:我不会认为aux这是一个保留字,但是是的,它是,请参阅https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file。感谢@Ricky 指出这一点。现在,我只需要更改文件夹的名称。

答案1

aux是 DOS/Windows 中的保留字。通过任何“正常”方式尝试访问该文件都会失败:

T:\>dir \\.\t:\aux
10/31/2021  08:50 AM                 0 aux
           1 File(s)              0 bytes

T:\>dir t:\aux
File Not Found

我的 samba 版本(3.0.10)已经很旧了,所以它的名字一点也不混乱。 (短名称和长名称均为“aux”)

相关内容