mount error 13 = Izin ditolak

44

Salah satu server saya diatur untuk secara otomatis me-mount direktori Windows menggunakan fstab. Namun, setelah reboot terakhir saya berhenti bekerja. Baris dalam fstab adalah:

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

The .Smbcredentialsfile:

username=myaccount
password=mypassword
domain=mydomain

Saya melakukan mount -adan menerima mount error 13 = Permission denied. Jika saya melakukan ini cukup itu akan mengunci akun Windows saya, jadi saya tahu itu mencoba. Saya sudah memeriksa kata sandi saya sudah benar.

Apa yang saya lakukan salah?

Acar
sumber
4
Bisakah Anda mencoba me-mount dari baris perintah dengan mount -t cifs //myserver/myfolder /mnt/backup --verbose -o credentials=home/myfolder/.Smbcredentialsdan menambahkan info debugging (disanitasi) ke pertanyaan Anda?
bsd
Apa distro dan versi yang cifs-utilstelah Anda instal? Saya pernah mengalami masalah ini sebelumnya dan saya yakin itu karena pembaruan.
slm

Jawaban:

44

Beberapa hal untuk diperiksa. Saya melakukan sesuatu yang serupa dan Anda dapat menguji mount secara langsung menggunakan mountperintah untuk memastikan Anda memiliki pengaturan yang benar.

Izin pada file kredensial

Pastikan file ini diizinkan dengan benar.

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

Pemasangan verbose

Anda dapat membujuk lebih banyak info untuk mountmenggunakan -vsakelar yang sering kali menunjukkan kepada Anda di mana segala sesuatunya tersandung.

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

Menghasilkan output ini jika berfungsi:

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

Periksa log

Setelah menjalankan perintah mount di atas, lihat di dalam file Anda dmesgdan /var/log/messagesatau /var/log/sysloguntuk setiap pesan kesalahan yang mungkin dihasilkan ketika Anda mencoba mount.

Jenis keamanan

Anda dapat melewati banyak opsi tambahan melalui -o ..sakelar untuk memasang. Opsi-opsi ini bersifat spesifik teknologi, jadi dalam kasus Anda mereka dapat diterapkan mount.cifssecara spesifik. Lihatlah mount.cifshalaman manual untuk mengetahui lebih lanjut tentang semua opsi yang dapat Anda lewati.

Saya menduga Anda kehilangan opsi untuk sec=.... Khususnya salah satu opsi ini:

   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.

Anda mungkin perlu menyesuaikan sec=...opsi sehingga salah satu sec=ntlmatau sec=ntlmssp.

Referensi

slm
sumber
1
Memeriksa dmesgitu sangat membantu. Jawaban ini berasal dari tahun 2014, dan sejak itu, eksploitasi WannaCry pada SMB1.0 membuatnya tidak digunakan lagi, jadi pastikan untuk menambahkan vers=2.0atau 2.1 atau 3.0, apa pun yang didukung server, karena standar 1.0 tidak lagi didukung.
Michael Plautz
1
Hanya kepala-up: karena folder tujuan berada di bawah Windows, yang sering membutuhkan perubahan kata sandi sesekali, kata sandi dalam file kredensial mungkin tidak valid. mountperintah tidak akan memberi tahu Anda rincian tersebut.
HongboZhu
22

Terima kasih, tetapi lebih banyak googling menemukan solusinya. Itu menggunakan tipe keamanan yang salah secara default; perintah ini berhasil:

$ sudo mount -t cifs //172.16.1.5/myshare/ /mnt/myshare \
    -osec=ntlmv2,domain=MYDOMAIN,username=myusername,password=mypassword
Acar
sumber
Ini dia! Menjalankan mount -t cifs //10.0.0.138/usb1_1 /mnt/usbdisk -ousername=theusername,password=thepassord,file_mode=0644,dir_mode=0755,uid=rootpada mesin Fedora 25 bekerja dengan baik, tetapi gagal ketika saya menjalankan perintah yang sama persis pada kotak openwrt (Chaos Calmer 15.05.1). Menambahkan sec=ntlmv2membuatnya bekerja di sana juga.
hlovdal
2
Datang ke sini mencoba untuk me-mount anggota Debian 9 AD dari CentOS 6 non-anggota, dan ini membuat saya dekat - untuk kasus saya sihirnya adalahsec=ntlmssp
Cheetah
Cara memperbaikinya bagi saya adalah menggunakan domainkata kunci dan menentukannya selain dari nama pengguna.
Jim Fell
sec = ntlmv2 memiliki opsi yang saya butuhkan untuk akses seseorang dari Ubuntu 18.04 ke Windows 10. Terima kasih, Acar.
noel aye
12

Saya mengalami masalah ini dan ternyata masalahnya adalah tidak memformat nilai dalam file kredensial saya dengan benar. Saya mencoba:

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

Saya juga mencoba:

[email protected]
password=<password>
domain=FULLY.QUALIFIED.DOMAIN

Dan:

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

Setelah saya hanya menggunakan nama pengguna login saya saja:

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

Saya bisa membuat cifs saya berhasil.

Mark Salisbury
sumber
penjelasan yang bagus!
Dima Lituiev
2

Ini menambahkan bekerja di Linux ilmiah 6.6 (RedHat 6.6)

edit /etc/fstab
create file = .credentials(misalnya dalam /etc) dengan detail ini:

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 
stoferontheweb
sumber
flag file_mode dan dir_mode terpecahkan untuk saya! :)
Rafael Moni