माउंट त्रुटि 13 = अनुमति से इनकार किया


44

मेरे एक सर्वर को 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। यदि मैं यह पर्याप्त करता हूं तो यह मेरे विंडोज खाते को बंद कर देगा, इसलिए मुझे पता है कि यह कोशिश कर रहा है। मैंने जाँच की है कि मेरा पासवर्ड सही है।

मैं क्या गलत कर रहा हूं?


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

Verbose Mount

आप स्विच के 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=********

लॉग की जाँच करें

उपरोक्त माउंट कमांड को चलाने के बाद अपने 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 से था, और तब से, SMB1.0 के WannaCry शोषण ने इसे पदावनत कर दिया है, इसलिए vers=2.0जो भी सर्वर का समर्थन करता है उसे 2.1 या 3.0 या जोड़ना सुनिश्चित करें , क्योंकि डिफ़ॉल्ट 1.0 अब समर्थित नहीं होगा।
माइकल प्लॉटज़

1
बस एक हेड-अप: चूंकि डेस्टिनेशन फोल्डर विंडोज के अंतर्गत होता है, जिसके लिए अक्सर हर एक बार पासवर्ड बदलने की आवश्यकता होती है, क्रेडेंशियल फाइल में पासवर्ड अवैध हो सकता है। mountकमांड आपको इस तरह के विवरण नहीं बताएगा।
हांगबोझू

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फेडोरा 25 मशीन पर चलना ठीक काम करता था, लेकिन जब मैं एक ओपनरैट बॉक्स पर ठीक उसी कमांड को चलाता था तो असफल हो गया (कैओस कैलमेर 15.05.1)। sec=ntlmv2इसे जोड़कर वहां भी काम किया गया।
१dal को

2
यहाँ एक CentOS 6 गैर-सदस्य से एक डेबियन 9 AD सदस्य को माउंट करने की कोशिश कर रहा था, और यह मुझे बंद कर दिया - मेरे मामले के लिए जादू थाsec=ntlmssp
चीता

मेरे लिए फिक्स domainकीवर्ड का उपयोग करना था और इसे उपयोगकर्ता नाम के अलावा निर्दिष्ट करना था।
जिम फेल

sec = ntlmv2 में उबटन 18.04 से विंडोज 10 के शेयर तक सिर्फ मेरी smb पहुंच की जरूरत है। धन्यवाद, अचार।
नोएल ऐ

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

मैं अपने सीआईएफ को सफल होने के लिए माउंट करने में सक्षम था।


महान व्याख्या!
दिमा लितुविव

2

यह ऐड वैज्ञानिक लिनक्स 6.6 (RedHat 6.6) पर काम करता है

/etc/fstab
फ़ाइल बनाएँ संपादित करें = .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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.