cifs, smb - Не удается смонтировать (разрешение запрещено) или перемещаться по общей папке

13

Я недавно столкнулся с этой проблемой. Я обычно перемещаюсь через локальную сетевую общую папку с машины Linux через smb (то есть из менеджера файлов, используя smb:). Теперь, когда я пытаюсь получить доступ к ярлыку или вводу учетных данных снова, я получаю диалоговое окно с запросом пользователя, домена и пароля.

Поэтому я попытался смонтировать местоположение вручную с помощью cisf-utils, выполнив:

sudo mount -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/used_shared/ -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Я получаю mount error(13): Permission denied.

Я определенно уверен, что у моего пользователя есть разрешение на эту папку, потому что я могу получить к нему доступ с компьютера Windows.

Также, если я попытаюсь смонтировать мою личную папку в этом месте через:

sudo mount -t cifs //fileshare1/docs5/francesco.azzarello/ /home/frank/mnt_folder -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Я могу получить к нему доступ без проблем.

Для справки я использую ядро ​​4.2.0-36-generic, а моя версия mount.cifs - 6.4

Любая идея о том, как заставить один из обоих методов работать?


Обновить Rgarding ponsfrilus ответ

номер 1: подробный вариант возвращает:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,uid=1000,gid=1000,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Номер 2 в основном то же самое:

_ mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

И ничего не изменилось с версией = 2.1:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,vers=2.1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Что касается номера 4, я могу смонтировать docs1 без проблем, но я могу перемещаться, чтобы попасть в общую папку пользователя.

Frankmtl
источник
Попробуйте совет № 3 с vers=3.0, возможно, также vers=2.0или vers=1.0. Если это не работает, возможно, вы можете разрешить серверу подключаться к более широкому диапазону версий smb. У меня была эта проблема самостоятельно, потому что smb3 был установлен на сервере как требуется. Я не мог подключиться к Linux, пока сервер не снизил требуемую версию Samba до 2. На какой ОС работает сервер?
emk2203
2
Я перепробовал их все. Я все еще получаю «разрешение отказано» с 3.0, 2.1 и 2.0. Пока я получаю «неизвестную ошибку» с 1.0. Я не знаю, как проверить версию сервера Windows как пользователь, так как у меня нет прямого доступа к ней.
Frankmtl
Не могу тебе помочь, извини. У меня был контроль над сервером, и моя проблема ушла после ослабления разрешенных версий SMB. Вы можете подключиться к своему собственному ресурсу - неправильная настройка linux маловероятна; Вы можете подключиться через Windows, чтобы поделиться - неверная конфигурация сервера маловероятна. Это требует настоящего самбу гуру.
emk2203

Ответы:

10

Я почти уверен, что столкнулся с той же самой проблемой сегодня на Ubuntu 16.10. Я несколько раз пробовал все предложения в этой теме, я мог монтировать один и тот же общий ресурс с помощью Windows Server 2016 и просматривать его с помощью smbclient ( smbclient -U brainstrust //WINBOX01/shared). Я даже попробовал внешний файл учетных данных.

В итоге я наткнулся на исправление - хотя я создал локального пользователя для общего ресурса на коробке Windows, он также был присоединен к домену. По сути, установка домена в качестве локальной машины сразу же -o domain=WINBOX01решила мою проблему, поэтому оставил здесь комментарий в надежде, что он кому-нибудь пригодится.

Полная минимальная команда, которую я использовал, была:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01
Джефф Уильямс
источник
Спасибо за оставленный здесь комментарий, он помог мне.
dleerob
Помог мне тоже. Похоже, что mount -t cifs страдает от той же проблемы
Терминальность
Это то, что оказалось моей проблемой. У меня уже был ~/.smbcredentialsфайл. Я с ужасом узнал, что мой локальный NAS позволил мне смонтировать общий ресурс с неверным паролем в течение очень долгого времени.
Чарли
Как ни странно, нам нужно было указать имя домена NetBIOS, а не имя хоста файлового сервера. Тем не менее, это работает сейчас, спасибо большое.
Бвиктор
9

Я думаю, что у вас неправильный тип безопасности для сервера, ошибка 13 означает, что сервер не пускает вас.

Вам нужно будет выбрать правильный режим безопасности в вашей команде монтирования и добавить параметр sec через -o следующим образом:

sec=
   Security mode. Allowed values are:
   ·   none - attempt to connection as a null user (no name)
   ·   krb5 - Use Kerberos version 5 authentication
   ·   krb5i - Use Kerberos authentication and forcibly enable packet 
       signing
   ·   ntlm - Use NTLM password hashing
   ·   ntlmi - Use NTLM password hashing and force packet signing
   ·   ntlmv2 - Use NTLMv2 password hashing
   ·   ntlmv2i - Use NTLMv2 password hashing and force packet signing
   ·   ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message
   ·   ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message, and force packet signing
Амиас
источник
1
Я попробовал все из них, и я получаю «Отказано в разрешении» или «Неизвестная ошибка» в зависимости от типа sec
Frankmtl
Учитывая все недавние проблемы безопасности с SMB, я бы советовал использовать его только там, где есть множество дополнительных мер безопасности, таких как очень современная проверка на вирусы.
Амиас
Попробуйте использовать sec = ntlmssp и убедитесь, что конфигурация вашего сервера samba шифрует пароль.
Шалтай
Спас мой день. На самом деле я просто удалил sec = ntlm, и это сработало.
chuckedw
Вы действительно должны отойти от SMB в эти дни, это почти постоянный источник атак и эскалации привилегий.
Амиас
4
  1. Попробуйте добавить опцию "-v", чтобы получить подробный вывод:

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o \
       username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
    
  2. Проверьте эти параметры в команде mount

    iocharset = utf8, rw, file_mode = 0777, dir_mode = 0777 :

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o 
       username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    
  3. Тест с указанием опции версии SMB (версия = 2.1), см. Вики samba . Со страницы руководства mount.cifs:


    версия = версия протокола SMB. Допустимые значения:

    • 1.0 - Классический протокол CIFS / SMBv1. Это по умолчанию.

    • 2.0 - протокол SMBv2.002. Первоначально это было представлено в Windows Vista с пакетом обновления 1 (SP1) и Windows Server 2008. Обратите внимание, что в первоначальной версии Windows Vista использовался немного другой диалект (2.000), который не поддерживается.

    • 2.1 - Протокол SMBv2.1, который был представлен в Microsoft Windows 7 и Windows Server 2008R2.

    • 3.0 - протокол SMBv3.0, который был представлен в Microsoft Windows 8 и Windows Server 2012.

  4. Наконец, попробуйте смонтировать только первый общий ресурс:

    sudo mount -v -t cifs //fileshare1/docs1/ /home/frank/mnt_folder \
       -o username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    

Любой подробный вывод, которым вы можете поделиться, может помочь.

ponsfrilus
источник
Спасибо за ответ. Я не нашел лучшего способа воспроизведения, кроме как обновить вопрос. вы можете найти результаты этих команд в обновлении
Frankmtl
@Frankmtl Можете ли вы сравнить права папок внутри docs1 и docs5 filehare1?
Понфрилус
Извините за задержку с ответом. Если вы имеете в виду права доступа к папке после того, как я их монтирую, у них обоих есть drwxr-xr-x
Frankmtl
Чтобы получить доступ к общему ресурсу сервера Windows 2012 (smb2), вы должны добавить ,vers=2.1 после uid = 1000 (он же конец строки). Я также установил пакет "cifs-utils".
Laugeo
2

Для этой проблемы при использовании cifs выше 6.0: новая версия cifs использует вместо этого переменную домена, поэтому файл creadentials выглядит следующим образом:

username=<your username>
password=<your password>
domain=<your domain>
До Мань Тянь
источник
Решение для меня действительно было без пробелов до и после =.
WM
2

Добавление опции sec=ntlmв команду mount решило мою проблему.

например:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/
Брика
источник