lỗi gắn kết 13 = Quyền bị từ chối


44

Một trong những máy chủ của tôi được thiết lập để tự động gắn thư mục Windows bằng fstab. Tuy nhiên, sau lần khởi động lại cuối cùng của tôi, nó đã ngừng hoạt động. Dòng trong fstab là:

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

Các .Smbcredentialstập tin là:

username=myaccount
password=mypassword
domain=mydomain

Tôi làm một mount -avà tôi nhận được mount error 13 = Permission denied. Nếu tôi làm điều này đủ, nó sẽ khóa tài khoản Windows của tôi, vì vậy tôi biết nó đang cố gắng. Tôi đã kiểm tra mật khẩu của mình có đúng không.

Tôi đang làm gì sai?


4
Bạn có thể thử gắn kết từ dòng lệnh với mount -t cifs //myserver/myfolder /mnt/backup --verbose -o credentials=home/myfolder/.Smbcredentialsvà thêm thông tin gỡ lỗi (khử trùng) vào câu hỏi của bạn không?
bsd

Bản phân phối và phiên bản cifs-utilsnào bạn đã cài đặt? Tôi đã có vấn đề này trước đây và tôi tin rằng đó là do một bản cập nhật.
slm

Câu trả lời:


44

Một vài điều để kiểm tra. Tôi làm một cái gì đó tương tự và bạn có thể kiểm tra mount nó trực tiếp bằng cách sử dụng mountlệnh để đảm bảo bạn đã thiết lập mọi thứ đúng.

Quyền trên tập tin xác thực

Hãy chắc chắn rằng tập tin này được cho phép ngay.

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

Gắn kết dài

Bạn có thể dỗ thêm thông tin mountbằng cách sử dụng công -vtắc thường sẽ cho bạn biết nơi mọi thứ đang được tăng tốc.

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

Kết quả trong đầu ra này nếu nó hoạt động:

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=********

Kiểm tra nhật ký

Sau khi chạy lệnh mount ở trên, hãy xem bên trong dmesg/var/log/messageshoặc /var/log/syslogcác tệp của bạn cho bất kỳ thông báo lỗi nào có thể đã được tạo khi bạn thử mount.

Loại bảo mật

Bạn có thể vượt qua rất nhiều tùy chọn bổ sung thông qua công -o ..tắc để gắn kết. Các tùy chọn này là công nghệ cụ thể, vì vậy trong trường hợp của bạn, chúng có thể áp dụng mount.cifscụ thể. Hãy xem mount.cifstrang người đàn ông để biết thêm về tất cả các tùy chọn bạn có thể vượt qua.

Tôi nghi ngờ bạn đang thiếu một lựa chọn sec=.... Cụ thể một trong những lựa chọn sau:

   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.

Bạn có thể cần điều chỉnh sec=...tùy chọn sao cho tùy chọn đó sec=ntlmhoặc sec=ntlmssp.

Người giới thiệu


1
Kiểm tra dmesglà rất hữu ích. Câu trả lời này là từ năm 2014 và kể từ đó, việc khai thác WannaCry của SMB1.0 đã khiến nó không được chấp nhận, vì vậy hãy chắc chắn thêm vers=2.0hoặc 2.1 hoặc 3.0, bất cứ điều gì máy chủ hỗ trợ, vì 1.0 mặc định sẽ không còn được hỗ trợ.
Michael Plautz

1
Chỉ cần một phần đầu: vì thư mục đích nằm trong Windows, thường yêu cầu thay đổi mật khẩu mỗi lần, mật khẩu trong tệp thông tin xác thực có thể không hợp lệ. mountlệnh sẽ không cho bạn biết chi tiết như vậy.
HongboZhu

22

Cảm ơn, nhưng một số googling khác bật lên giải pháp. Nó đã sử dụng sai loại bảo mật theo mặc định; lệnh này đã làm việc:

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

Đây chính là nó! Chạy mount -t cifs //10.0.0.138/usb1_1 /mnt/usbdisk -ousername=theusername,password=thepassord,file_mode=0644,dir_mode=0755,uid=roottrên máy Fedora 25 hoạt động tốt, nhưng không thành công khi tôi chạy chính xác lệnh tương tự trên hộp mở (Chaos Calmer 15.05.1). Thêm sec=ntlmv2làm cho nó hoạt động ở đó là tốt.
hlovdal

2
Đến đây, cố gắng gắn kết một thành viên Debian 9 AD từ một người không phải là thành viên của CentOS 6, và điều này đã khiến tôi gần gũi - với trường hợp của tôi, phép thuật làsec=ntlmssp
Cheetah

Cách khắc phục đối với tôi là sử dụng domaintừ khóa và chỉ định nó ngoài tên người dùng.
Jim Fell

sec = ntlmv2 có tùy chọn tôi chỉ cần cho truy cập smb của tôi từ Ubuntu 18.04 đến chia sẻ Windows 10. Cảm ơn, Pickle.
noel aye

12

Tôi gặp vấn đề này và vấn đề hóa ra là không định dạng chính xác các giá trị trong tệp thông tin đăng nhập của tôi. Tôi đã thử:

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

Tôi cũng đã thử:

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

Và:

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

Khi tôi chỉ sử dụng tên đăng nhập của mình mà thôi:

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

Tôi đã có thể có được cifs mount của tôi để thành công.


giải thích tuyệt vời!
Dima Lituiev

2

Phần bổ sung này hoạt động trên Linux khoa học 6.6 (RedHat 6.6)

chỉnh sửa /etc/fstab
tạo tập tin = .credentials(ví dụ trong /etc) với chi tiết này:

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 

cờ file_mode và dir_mode đã giải quyết cho tôi! :)
Rafael Moni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.