正如许多关于 samba 共享和符号链接的问题的答案中所建议的那样,我已尝试明确启用“跟随符号链接”(尽管文档说默认情况下它是启用的)以及启用“宽链接”和“允许不安全的宽链接”(尽管这些与指向共享文件夹外部的符号链接有关,并且不会打开或关闭符号链接)...通过修改这些设置尚未启用符号链接创建。
Samba 共享由 Debian 8 主机提供并从 Debian 9 客户端访问。
这是我尝试在已挂载的共享中创建符号链接时获得的输出示例:
$ touch hello.txt
$ ln -s hello.txt hello.sl
ln: failed to create symbolic link ‘hello.sl’: Operation not supported
我的想法和搜索结果已经用完了,所以欢迎任何意见。
编辑1:
主机 smb.conf:
[global]
security = USER
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
server min protocol = SMB2
client min protocol = SMB2
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
[share_name]
path = /path/to/folder
force user = hostusername
force group = hostgroupname
read only = No
force create mode = 0660
force directory mode = 0770
case sensitive = Yes
客户端挂载命令:
sudo mount -t cifs //ip.add.re.ss/share_name /path/to/mount -o username=hostusername,vers=3.0,uid=clientusername,gid=clientgroupname,soft,rsize=8192,wsize=8192
答案1
感谢 @grawity 提示我的问题可能与协议版本有关。我找到了一个解决方案,通过mfsymlinks
在 mount 命令中添加选项来启用 SMB3 的符号链接,如下所示:
sudo mount -t cifs //ip.add.re.ss/share_name /path/to/mount -o username=hostusername,vers=3.0,uid=clientusername,gid=clientgroupname,soft,rsize=8192,wsize=8192,mfsymlinks
我不完全了解普通符号链接和 Minshall+French 符号链接之间的区别,但它似乎对我的情况有用。
资料来源:
https://www.systutorials.com/docs/linux/man/8-mount.cifs/
https://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks)。
答案2
这种方法对我有用:
sudo mount -t cifs -o user=user,pass=pass,vers=3.0,uid=987,gid=0,soft,rsize=8192,wsize=8192,mfsymlinks //10.10.10.10/git /var/opt/gitlab/git-data/repositories
答案3
使用 SMB 协议版本 1.0(经典的 CIFS/SMBv1 协议)时,创建真正的符号链接确实有效:
...-噢...,版本=1.0,...
实验和研究表明,自 2.0 版本以来,这种情况似乎不再被允许(我希望得到纠正)。
使用(新)选项连接时符号链接,在共享上创建的符号链接不是真正的符号链接,而是所谓的Minshall+法语符号链接,它们实际上是由 cifs 客户端解释为符号链接的文本文件(但在服务器本身上毫无用处)。