Сбой монтирования общего ресурса cifs (используя пароль или билет Kerberos krb5)

ВЕДУЩИЙ: Kubuntu 16.04.3 LTS

LOCALHOST: Kubuntu 17.10

Я больше не могу смонтировать общий ресурс cifs на терминале:

mount -t cifs -o user=USER,domain=DOMAIN //HOST/share /mnt/tmp
Password for USER@//HOST/share:  *************
mount error(5): Input/output error
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

В системном журнале я обнаружил сообщения об ошибках при попытке:

Status code returned 0xc000005e STATUS_NO_LOGON_SERVERS
CIFS VFS: Send error in SessSetup = -5
CIFS VFS: cifs_mount failed w/return code = -5

Я уверен, что это рабочий ресурс с достаточными разрешениями для этого пользователя. Я могу без проблем запустить dolphin и открыть smb: // HOST / share !

Моя система находится в среде Active Directory ( realm , sssd ), и я также попытался смонтировать, используя билет Kerberos, но потерпел неудачу:

mount -t cifs -o user=USER,domain=DOMAIN,cruid=USER,sec=krb5 //HOST/Share /mnt/tmp
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

В syslog я обнаружил следующие сообщения об ошибках при попытке:

CIFS VFS: Send error in SessSetup = -2
CIFS VFS: cifs_mount failed w/return code = -2

SSO через Kerberos работает! Используя smb: // HOST / share на dolphin , я могу открыть общий ресурс без пароля.

Также я могу войти в общий ресурс, используя

smbclient -U USER //HOST/share

, и могу перечислять файлы там, используя 'ls'.

Я нашел кого-то с той же ошибкой в ​​интернете, но он мог решить ее, удалив winbind. К сожалению, у меня не установлено winbind на обеих машинах, и для меня это не исправлено. Кто-то еще должен был добавить имя рабочей группы, что тоже не работает для меня. Также я обнаружил, что для монтирования использую другую версию smb. К сожалению, всегда происходит сбой с "cifs_mount faild w / return code = -5" ( вер = 1.0, верс = 2.0, верс = 2.1, верс = 3.0, верс = 3.1.1 ).

Я мог бы воспроизвести эту ошибку между двумя клиентами как с LTS, так и с последней версией 16.04 < -> 16.04 и 17.10 < -> 17.10 . ​​

Интересно: монтирование работает, если я монтирую общий ресурс Windows, а не общий ресурс linux samba!

В чем причина cifs_mount error -5 ?

Спасибо!

0
задан 24 November 2017 в 18:03

2 ответа

Я хотел бы ответить на свой собственный вопрос (решено) :

Я поместил своих клиентов в AD по областям, используя SSSD и без winbind. SSSD не поддерживает аутентификацию NTLM, поэтому аутентификация по имени пользователя и паролю работает не на общих ресурсах Linux Samba, а на общих ресурсах Windows С samba 4.8 требуется winbind, поэтому я использую SSSD + winbind в комбинации. Теперь аутентификация пользователя / пароля на общих ресурсах samba работает!

Вам необходимо присоединить клиентов к AD с помощью

realm join --user=$USER --user-principal=host/$(hostname -s)@DOMAIN --automatic-id-mapping=no --client-software=sssd --membership-software=samba --computer-name=$(hostname -s) --os-name="$(grep NAME /etc/os-release | head -1 | sed 's/NAME="\(.*\)"/\1/g')" --os-version=$(grep VERSION_ID /etc/os-release | sed 's/VERSION_ID="\(.*\)"/\1/g') DOMAIN

, чтобы ваш smb.conf нуждался в параметрах [global], чтобы winbind использовал sss как бэкэнд

   idmap config DOMAIN : backend        = sss
   idmap config DOMAIN : range          = <min>-<max>
0
ответ дан 24 November 2017 в 18:03

Я рекомендую использовать fstab для монтажа.

Попробуйте проверить журналы, чтобы выяснить причины вашей проблемы, попробуйте эту команду, чтобы отобразить список файлов, которые могут отображать журналы монтирования:

grep -e mount -e ext4 -lR /var/log 2> /dev/null

Для меня журналы монтирования были в /var/log/syslog это может отличаться для вас.

Теперь вам нужно открыть две вкладки терминала, введите команду на одной вкладке: sudo tail -f /var/log/syslog

А на второй вкладке попробуйте смонтировать систему с помощью следующей команды:

mount -t cifs -o user=USER,domain=DOMAIN,cruid=USER,sec=krb5 //HOST/Share /mnt/tmp

Если вы вернетесь к своей первой вкладке, вы сможете увидеть некоторые ошибки журнала. Для меня ошибки были (для вас это могут быть разные):

   kernel: No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
   kernel: CIFS VFS: protocol revalidation - security settings mismatch
   kernel: CIFS VFS: session ffff90a6a2959000 has no tcon available for a dfs referral request
   kernel: CIFS VFS: cifs_mount failed w/return code = -5

В зависимости от ваших журналов ошибок, вы можете избежать добавления vers=1.0 в вашу команду монтирования, и это может работать, но это менее безопасная версия кого-л. В противном случае вы можете определить, какое решение основано на полученной ошибке.

Также можно попробовать настроить сервер Samba внутри /etc/samba/smb.conf следующим образом (он работает для меня):

[username]
   comment = Username's developer directory
   read only = no
   locking = no
   path = /var/www/username
   guest ok = no
   writeable = yes

Затем на клиенте добавьте следующую строку to /etc/fstab

//server/username /mountpoint cifs vers=1.0,username=username,iocharset=utf8,uid=your_profile_uid_on_the_server 0 0

Использование sudo mount /mountpint Посмотрите, как это происходит, надеюсь, эта информация будет вам полезна.

1
ответ дан 24 November 2017 в 18:03

Другие вопросы по тегам:

Похожие вопросы: