
Символические ссылки на моем ресурсе 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квыглядит как символическая ссылка. Но это не так. Похоже на дубликат оригинального файла — у них даже одинаковый номер инода на клиенте, но не на сервере.
Что здесь происходит? Есть ли способ сделать так, чтобы символические ссылки выглядели как символические ссылки? Я читал о проблемах безопасности с samba и символическими ссылками, и я предполагаю, что это может быть причиной изменения поведения, но я так и не нашел четкого объяснения – и в этом случае меня не волнуют последствия для безопасности.
решение1
У вас есть
unix extensions=no
follow symlinks=yes
Что означает, что
- Сервер не будет сообщать о ссылках
- Сервер перейдет по символической ссылке.
Вероятно, второго варианта будет достаточно, чтобы рассматривать символическую ссылку как обычную ссылку, другими словами, как два имени, ссылающихся на один и тот же файл.