помилка монтажу 13 = Дозвіл відхилено


44

Один з моїх серверів налаштований для автоматичного монтажу каталогу Windows за допомогою fstab. Однак після моєї останньої перезавантаження вона перестала працювати. Рядок у fstab:

//myserver/myfolder /mnt/backup cifs credentials=home/myfolder/.Smbcredentials

.Smbcredentialsфайл:

username=myaccount
password=mypassword
domain=mydomain

Я роблю mount -aі отримую mount error 13 = Permission denied. Якщо я цього зроблю достатньо, він заблокує мій обліковий запис Windows, тому я знаю, що це намагається. Я перевірив правильність мого пароля.

Що я роблю неправильно?


4
Чи можете ви спробувати встановити з командного рядка mount -t cifs //myserver/myfolder /mnt/backup --verbose -o credentials=home/myfolder/.Smbcredentialsта додати інформацію про налагодження (дезінфіковану) до свого запитання?
bsd

Який дистрибутив та версію cifs-utilsви встановили? У мене була ця проблема раніше, і я вважаю, що це було пов’язано з оновленням.
slm

Відповіді:


44

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

Дозволи на файл облікових даних

Переконайтеся, що цей файл дозволено правильно.

$ sudo ls -l /etc/smb_credentials.txt 
-rw-------. 1 root root 54 Mar 24 13:19 /etc/smb_credentials.txt

Вербальне кріплення

Ви можете присвоїти більше інформації, mountвикористовуючи -vперемикач, який часто разів показуватиме вам, де все попадає.

$ sudo mount -v -t cifs //server/share /mnt \
    -o credentials=/etc/smb_credentials.txt

Результат цього результату, якщо він працює:

mount.cifs kernel mount options: ip=192.168.1.14,unc=\\server\share,credentials=/etc/smb_credentials.txt,ver=1,user=someuser,domain=somedom,pass=********

Перевірте журнали

Після запуску вищевказаної команди mount загляньте всередину ваших файлів dmesgта / /var/log/messagesабо /var/log/syslogфайлів на наявність повідомлень про помилки, які можуть бути створені під час спроби mount.

Тип забезпечення

Ви можете передати безліч додаткових опцій через -o ..перемикач для кріплення. Ці варіанти залежать від технології, тому у вашому випадку вони застосовуються mount.cifsконкретно. Погляньте на сторінку mount.cifsчоловіка, щоб отримати докладнішу інформацію про всі варіанти, які можна пройти.

Я б підозрював, що ви пропускаєте варіант sec=.... Зокрема, один із таких варіантів:

   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

       The default in mainline kernel versions prior to v3.8 was sec=ntlm. 
       In v3.8, the default was changed to sec=ntlmssp.

Можливо, вам доведеться налаштувати sec=...параметр так, щоб він був sec=ntlmабо sec=ntlmssp.

Список літератури


1
Перевірка dmesgбула дуже корисною. Ця відповідь була з 2014 року, і відтоді експлуатація WannaCry SMB1.0 зробила її застарілою, тому обов'язково додайте vers=2.02.1 або 3.0, незалежно від того, що підтримує сервер, оскільки за замовчуванням 1,0 більше не підтримуватиметься.
Майкл Плаут

1
Лише підсумок: оскільки папка призначення знаходиться під Windows, яка часто вимагає зміни пароля раз у раз, пароль у файлі облікових даних може бути недійсним. mountкоманда не розповість вам таких деталей.
HongboZhu

22

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

$ sudo mount -t cifs //172.16.1.5/myshare/ /mnt/myshare \
    -osec=ntlmv2,domain=MYDOMAIN,username=myusername,password=mypassword

Це було все! Запуск mount -t cifs //10.0.0.138/usb1_1 /mnt/usbdisk -ousername=theusername,password=thepassord,file_mode=0644,dir_mode=0755,uid=rootна машині Fedora 25 працював чудово, але не вдався, коли я запустив абсолютно таку ж команду на вікні openwrt (Chaos Calmer 15.05.1). Додавання sec=ntlmv2змусило його працювати і там.
hlovdal

2
Сюди приїхав, намагаючись встановити члена Debian 9 AD від члена, який не є членом CentOS 6, і це мене наблизило - для мого випадку магія булаsec=ntlmssp
Гепард

Виправленням для мене було використання domainключового слова та вказання його, крім імені користувача.
Джим Fell

sec = ntlmv2 має потрібний мені варіант для доступу до smb з Ubuntu 18.04 до спільного доступу до Windows 10. Спасибі, Пікель.
noel aye

12

Я зіткнувся з цією проблемою, і проблема виявилася неправильним форматуванням значень у моєму файлі облікових даних. Я намагався:

username=DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

Я також спробував:

username=myemailaddress@someplace.com
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

І:

username=FULLY.QUALIFIED.DOMAIN\mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

Одного разу я тільки використав своє ім’я користувача для входу:

username=mylogin
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

Мені вдалося досягти успіху моїх CIF.


чудове пояснення!
Діма Літуєв

2

Це додає роботи над науковим Linux 6.6 (RedHat 6.6)

редагувати /etc/fstab
create file = .credentials(наприклад, в /etc) із цими деталями:

username=value
password=value
domain=value

//SERVER/SHARE1 /mnt/SHARE1 cifs credentials=/etc/.credentials,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 

прапори file_mode та dir_mode вирішені для мене! :)
Рафаель Моні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.