Вы можете использовать команду secure copy, если основной целью совместного использования точки монтирования является копирование/перемещение файлов:
$ scp your_username@remotehost.edu:foobar.txt /some/local/directory
К сожалению, модуль файловой системы cifs
ядра вообще не читает /etc/samba/smb.conf
. Клиентский модуль CIFS, который позволяет монтировать файловые ресурсы Windows, полностью отделен от Samba.
Уровень протокола по умолчанию в модуле cifs
был изменен на SMB3 в ванильном ядре версии 4.13, а исправление согласования нескольких диалектов -(фактически установило значение по умолчанию на «SMB2.1 или более позднюю версию» )был добавлен к ядрам ванили в сентябре 2017 года.
Я почти уверен, что в «корпоративных» дистрибутивах Linux исправление было перенесено на более ранние ядра, но в Arch единственным вариантом может быть обновление ядра до версии 4.13 или более поздней.
Вот ссылка на соответствующий патч в Git на kernel.org. Идентификатор фиксации может быть полезен при отслеживании исправления в определенных версиях ядра.
В рамках изучения этой проблемы я написал сценарий, который корректирует параметры CIFS для команды mount
.
#!/bin/bash
#
# Force SMB2.0 mount. We prefix the options list because a later explicit
# "vers=..." option overrides the one we add.
########################################################################
#
args=()
# Only consider checking options if we have a CIFS mount
[[ "$*" =~ '-t cifs' ]] && cifs=yes || cifs=
options=
for arg in "$@"
do
if [[ $next == 'options' ]]
then
# Prefix version to options string
arg="vers=2.0,$arg"
next=
fi
args+=("$arg")
# CIFS options check
if [[ $cifs == 'yes' ]]
then
[[ $arg == '-o' ]] && next=options
fi
done
logger -p user.notice -t "${0/*\/}" "intercepted $0 ${args[*]}"
exec "$0.real" "${args[@]}"
Установите этот скрипт как /bin/mount.sh
. Затем запустите эти команды
chmod a+x /bin/mount.sh
mv /bin/mount /bin/mount.real && ln -fs mount.sh /bin/mount
Удалите его с помощью
test -L /bin/mount && rm -f /bin/mount && mv -f /bin/mount.real /bin/mount
rm -f /bin/mount.sh