mount.cifs не може використовувати той самий файл облікових даних, який використовує smbclient


10

Я намагаюся встановити CIFS-ресурс NetApp на одному з наших серверів, і я продовжую отримувати "Відмову в дозволі", надруковану на stderr і NT_STATUS_WRONG_PASSWORDнадруковану на поточний dmesg.

root@xxxehpvld05 ~ $ mount.cifs -vv //zhp-nas.xxx.com/perspectives /mnt/secure/cifs -o credentials=/etc/cifs.creds
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
root@xxxehpvld05 ~ $ dmesg | tail
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13

Однак smbclientкоманда працює без проблем, використовуючи той самий точний файл облікових даних:

root@xxxehpvld05 ~ $ smbclient -L //zhp-nas.xxx.com/perspectives -A /etc/cifs.creds
Domain=[XXX] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       Remote IPC
        ZHPSubmit-dev   Disk
    [...snip...]

Схоже, якщо один працює інший, так само, тим більше, що у файлі облікових даних також вказується доменне ім'я.


що сталося з щедротою?

Ніколи не отримав відповіді, яка працювала на мене, тому виграш у підсумку закінчився, і всі ці очки пішли шляхом Додо.
Братчлі

Якщо ви можете придумати відповідь, я присуджую вам нову нагороду, я просто не хочу зберігати бали, якщо я не отримаю відповіді.
Братчлі

Отже, у мене була подібна проблема (з помилкою -13 від модуля ядра). Я встановив cifs-utilsпакет (Debian), і це вирішило проблему. Я витратив трохи налагодження , тому що я не очікував , що якийсь - або підтримки без пакета будучи встановлений, тому я припустив , що це було. Я очікував, що щось подібне до "невідомої файлової системи" від кріплення, але цього не сталося.
sherrellbc

Відповіді:


7

З додатковою інформацією я не можу сказати точно, але я бачив цю проблему під час підключення до більш старого сервера Windows, на якому було запущено стару версію протоколу. Пам'ятайте, що CIFS вважається "діалектом" (типом) SMB. Існують і інші типи, і старіші установки не використовують CIFS.

В основному це все одно, що говорять двоє людей. Один іспанський і один англійський, і ви намагаєтесь змусити оратора зрозуміти іспанську мову, коли явно цього не робить.

SMBclient використовує інший діелект для переговорів з безпеки. (або принаймні виявляє інакше).

Спробуйте

mount -t cifs // шлях / річ / / mount / point -o ім'я користувача = користувач, пароль = пропуск, sec = ntlm

і подивіться, що станеться. (sec = ntlm - важлива частина)


Це ж питання навіть при вказівці автентифікації NTLM. Те саме, якщо я роблю ntlmабо ntlmv2. Я не знаю, як її усунути, тому якщо вам потрібна додаткова інформація, повідомте мене, і я оновлю питання. Чи може бути якийсь контроль доступу на стороні NetApp, який пропустив хлопець SAN?
Братчлі

Версія серверного програмного забезпечення, чи є на шляху якісь маршрутизатори чи комутатори?
coteyr

Та ж підмережа. Не знаєте, яка версія Samba знаходиться з іншого боку, оскільки це пристрій NetApp ONTAP.
Братчлі

4

Граючи з командами, я знайшов можливу причину:

Із man-сторінки smbclient:

   -A|--authentication-file=filename
       This option allows you to specify a file from which to read the
       username and password used in the connection. The format of the file is

           username = <value>
           password = <value>
           domain   = <value>

       Make certain that the permissions on the file restrict access from
       unwanted users.

На головній сторінці mount.cifs:

   credentials=filename
       specifies a file that contains a username and/or password and
       optionally the name of the workgroup. The format of the file is:

          username=value
          password=value
          domain=value

Потім я створив два файли облікових даних, один з пробілами, як показано в першому фрагменті, і один без і назвав їх credsі creds.spacy.

Велика розправа:

З credsфайлом:

mount.cifs -vvv //host/path /local/path -o credentials=/path/creds

добра тиша, без помилок.

З creds.spacyфайлом:

# mount.cifs -vvv //host/path /local/path -o credentials=/path/creds.spacy
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Отже, очевидно, ваш файл облікових даних містить пробіли, які не зрозуміли mount.cifs.

Крім того, smbclientне має значення, чи є пробіли. credsі creds.spacyне спричинив жодного рябчика.


У кінці файлу був додатковий порожній рядок, але після видалення я отримую те саме. Це трохи відредагована версія того, що є у файлі кредитів. Перероблені та реальні паролі - це змішані паролі регістрів, що містять "!" як особливий персонаж.
Братчлі

Є ще один аспект цього питання, який вирішив мені знайти це рішення: облікові дані повинні бути у правильному порядку, тобто ім’я користувача, пароль, домен, а не будь-який інший порядок, наприклад домен, ім’я користувача, пароль (що я мав). Це також добре працює, smbclientале не вдається mount.cifs. Як тільки я змінив наказ на правильний, як зазначено в цитованій тут документації, він почав працювати. Схоже, що це (як поводження з пробілами, так і питання замовлення) - це жахливі помилки, які повинні бути легко виправлені тим, хто підтримує mount.cifs.
leftclickben

2

Додавання sec = ntlm виправило проблему для мене. У мене є старший NAS (netgear stora). За замовчуванням для cifs у останніх ядрах є ntlmssp


Працював і для мене. Я ще не знаю справжньої причини. У випадку, якщо це комусь допоможе: кріплення isilon на ubuntu LTS 14.04. Ізілон (деякий SAN-штук) спілкується з нашим активним каталогом Windows. Цей же рахунок працював як шарм на інших машинах і при безпосередньому монтажі його у вікна.
Reinout van Rees

Додаткова примітка: 12.04 з останніми оновленнями працює добре, 14.04 - це якимось чином проблеми (зараз, кінець квітня 2015 р.).
Reinout van Rees

Останнє додаткове зауваження: основна проблема була відомою проблемою мікрософт з зберіганням і оновленням emc isilon KB3002657 (або приблизно так мені розповідає мій sysadmin :-))
Reinout van Rees

2

Ще одна можливість, яку я виявив під час спроби встановити спільну частину, - це те, що smbmountпідтримує username=DOMAIN\\userсинтаксис для надання користувачеві домену в якості облікового запису.

Для mount.cifsmount -t cifs) на роботу, ці два повинні бути представлені окремо: -o username=user,password=pass,dom=DOMAIN.


Щоб встановити частку smb 3.0, що обслуговується в кластеризованих даних NetApp, ONTAP повинен був викликати і те, sec=ntlmіdom=DOMAIN
iii

1

Як пояснив user55518, у вашому файлі облікових даних, ймовірно, є пробіли, навіть якщо ви їх не бачите. Якщо ви редагували файл своїх облікових даних у Windows, ви, ймовірно, є \rв кінці рядків, і це призводить до помилки 13.


ви можете використовувати список наборів команд у vim, щоб перевірити наявність додаткових вкладок / пробілів
vfbsilva

0

Я хочу подякувати всім у !!! для цього питання, мені це дуже допомагає! Я також знайшов важливу інформацію про параметр "sec = ntlm", тому я залишаю посилання, якщо деякі з вас цікаві про це, рядки нижче:

Microsoft NTLM

Я намагався встановити каталог спільного використання на робочому столі Windows 7, але мені було неможливо додати параметр "sec = ntlm", і це працює, і важливою деталлю може бути те, що я не врахував, що мій робочий стіл Windows 7 перебуває в домену, тому я думаю, це була найважливіша деталь, яку я повинен розглянути. отже, це працює !, дуже дякую вам дуже всі u !, благословення !! і хороші вібрації! : D


0

У моєму випадку мені потрібно було лише додати параметр vers=3.0(CIFS була версія 1, яка більше не підтримується, оскільки ядро ​​4.13, тому я перейшов право на SMBv3 на сервері), і все ж мені довелося перезавантажити, щоб він працював, це мій зараз монтуйте лінію /etc/fstab:

auto,rw,credentials=/usr/local/etc/smb.credentials,vers=3.0,file_mode=0664,dir_mode=0775,uid=myuser,gid=users

Мій файл облікових даних:

username=myuser
password=****
domain=mydomain

Насправді, domainце не потрібно, але це правильний варіант використання відповідно до сторінки man.cifs man зараз.


0

Я певний час боровся з цим.

З наступними помилками:

mount error(112): Host is down

тут він допоміг встановити vers = 1.0 варіант, потім він повідомив

mount error(13): Permission denied

і виявилося, що це зайві "символи у моєму файлі облікових даних

де я спочатку мав:

# cat /etc/samba/cred-file
username="john"
password="secret"

де воно повинно бути

# cat /etc/samba/cred-file
username=john
password=secret
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.