我的 Samba 共享上的符号链接没有按照我希望的方式运行 - 具体来说,链接看起来像重复的常规文件到客户端机器。这曾经有效(即服务器上的符号链接看起来像客户端上的符号链接),但在某些时候它停止了。所以我假设它与 samba 版本有某种关系,但我从未找到有效的组合。
符号链接在 Samba 客户端上是否可能像符号链接一样工作?如果可以,如何操作?
这是我的设置。
服务器:Synology NAS 通过 samba 提供共享服务
------server smb.conf-------
[global]
unix extensions=no
follow symlinks=yes
wide links=yes
allow insecure wide links=yes
客户:Ubuntu 16.04 机器,使用以下命令挂载共享
sudo mount -t cifs -o vers=3.0 -o user=<myuser> //server/sharename /mnt/mountpoint
安装共享后,我接下来要做的事情如下:
在服务器上
$ echo "HELLO WORLD" > file-created-on-server.txt
$ ln -s file-created-on-server.txt symlink-created-on-server.txt
$ ls -iog
75852 -rwxrwxrwx+ 1 12 Jul 19 20:16 file-created-on-server.txt
75859 lrwxrwxrwx+ 1 25 Jul 19 20:53 symlink-created-on-server.txt -> file-created-on-server.txt
显然这是一个符号链接。但是,如果我这样做...
在客户端上
$ ls -iog
total 8
75852 -rwxr-xr-x 1 12 Jul 19 21:16 file-created-on-server.txt
75852 -rwxr-xr-x 1 12 Jul 19 21:16 symlink-created-on-server.txt
我期望在服务器上创建的符号链接.txt到看起来像一个符号链接。但事实并非如此。它看起来像是原始文件的副本——它们在客户端上甚至具有相同的 inode 编号,但在服务器上却不是。
这是怎么回事?有没有办法让符号链接看起来像符号链接?我读过有关 samba 和符号链接的安全问题的文章,我想这可能是行为改变的原因,但我从未找到明确的解释——在这种情况下,我不在乎安全隐患。
答案1
你有
unix extensions=no
follow symlinks=yes
这意味着
- 服务器不会报告链接
- 服务器将跟随符号链接。
仅第二个选项就足以将符号链接视为常规链接,换句话说,将其视为指向同一文件的两个名称。