mount.cifs tidak dapat menggunakan file kredensial yang sama dengan yang digunakan smbclient

10

Saya mencoba untuk me-mount berbagi NetApp CIFS ke salah satu server kami dan saya terus mendapatkan "Izin ditolak" dicetak ke stderr dan NT_STATUS_WRONG_PASSWORDdicetak untuk menjalankan 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

The smbclientperintah, namun bekerja tanpa masalah, menggunakan yang sama file kredensial yang tepat:

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...]

Sepertinya jika salah satu bekerja yang lain juga harus terutama karena file kredensial juga menentukan nama domain.

Bratchley
sumber
apa yang terjadi pada karunia?
Tidak pernah mendapat jawaban yang berhasil untuk saya sehingga hadiah akhirnya berakhir dan semua poin berjalan sesuai dodo.
Bratchley
Jika Anda dapat memikirkan jawabannya, saya akan memberi Anda hadiah baru, saya hanya tidak ingin terus kehilangan poin jika saya tidak mendapatkan jawaban.
Bratchley
Jadi, saya mengalami masalah serupa (dengan -13 error dari modul kernel). Saya menginstal cifs-utilspaket (Debian) dan menyelesaikan masalah. Saya menghabiskan sedikit debug ini karena saya tidak mengharapkan dukungan apa pun tanpa paket yang telah diinstal, jadi saya berasumsi itu. Saya mengharapkan sesuatu seperti "filesystem tidak dikenal" dari mount, tetapi itu tidak terjadi.
sherrellbc

Jawaban:

7

Dengan info lebih lanjut saya tidak bisa mengatakan dengan pasti tetapi saya telah melihat masalah ini ketika menghubungkan ke server windows yang lebih lama yang menjalankan versi protokol yang lebih lama. Ingat CIFS dianggap sebagai "Dialek" (jenis) dari SMB. Ada jenis lain dan pengaturan lama tidak menggunakan CIFS.

Pada dasarnya ini seperti mengatakan dua orang sedang berbicara. Satu bahasa Spanyol dan satu bahasa Inggris, dan Anda mencoba memaksa penutur bahasa Inggris untuk memahami bahasa Spanyol padahal jelas tidak.

SMBclient menggunakan diel berbeda untuk negosiasi keamanan. (atau setidaknya mendeteksi secara berbeda).

Mencoba

mount -t cifs // path / thing / / mount / point -o nama pengguna = pengguna, kata sandi = lulus, sec = ntlm

dan lihat apa yang terjadi. (sec = ntlm adalah bagian penting)

kapas
sumber
Masalah yang sama bahkan ketika menentukan otentikasi NTLM. Sama jika saya lakukan ntlmatau ntlmv2. Saya tidak yakin bagaimana cara memecahkan masalah itu jadi jika Anda memerlukan informasi lebih lanjut beri tahu saya dan saya akan memperbarui pertanyaan. Mungkinkah ada beberapa kontrol akses di sisi NetApp yang dilewatkan oleh orang SAN?
Bratchley
Versi perangkat lunak server, apakah ada router atau switch di jalan?
coteyr
Subnet yang sama. Tidak yakin apa versi Samba di sisi lain karena ini adalah alat NetApp ONTAP.
Bratchley
4

Bermain-main dengan perintah, saya menemukan kemungkinan alasan:

Dari halaman manual 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.

Dari halaman manual 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

Lalu saya membuat dua file kredensial, satu dengan spasi, seperti yang ditunjukkan pada cuplikan pertama dan satu tanpa dan menamai mereka credsdan creds.spacy.

Pertikaian besar:

Dengan credsfile:

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

diam bagus, tidak ada kesalahan.

Dengan creds.spacyfile:

# 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)

Jadi jelas file kredensial Anda berisi spasi, yang tidak dipahami oleh mount.cifs.

Selain smbclientitu tidak masalah jika ada ruang. credsdan creds.spacytidak menyebabkan belibis.


sumber
Ada baris kosong tambahan di akhir file tetapi saya mendapatkan hal yang sama setelah menghapusnya. Ini adalah versi yang sedikit disunting dari apa yang ada di file kredit. Kata sandi yang dihapus dan asli adalah kata sandi campuran yang berisi "!" sebagai karakter khusus.
Bratchley
Ada aspek lain untuk ini, yang membuat saya menemukan solusi ini: Kredensial harus dalam urutan yang benar, yaitu nama pengguna, kata sandi, domain, dan bukan urutan lain seperti domain, nama pengguna, kata sandi (yang merupakan milik saya). Ini juga berfungsi dengan baik smbclienttetapi gagal untuk mount.cifs. Setelah saya mengubah urutan ke yang benar seperti yang ditentukan dalam dokumentasi yang Anda kutip di sini, itu mulai bekerja. Sepertinya ini (keduanya salah penanganan ruang dan masalah pemesanan) adalah bug mengerikan yang harus dengan mudah diperbaiki oleh siapa pun yang memelihara mount.cifs.
leftclickben
2

Menambahkan sec = ntlm memperbaiki masalah untuk saya. Saya memiliki NAS yang lebih lama (netgear stora). Keamanan default untuk cif di kernel baru-baru ini adalah ntlmssp

Ed Hourigan
sumber
Bekerja untuk saya juga. Saya belum tahu penyebab sebenarnya. Dalam hal ini membantu seseorang: isilon mount di ubuntu LTS 14.04. Isilon (beberapa SAN thingy) berbicara ke direktori windows aktif kami. Akun yang sama berfungsi seperti pesona di komputer lain dan ketika langsung memasangnya di windows.
Reinout van Rees
Catatan tambahan: 12,04 dengan pembaruan terbaru berfungsi dengan baik, 14,04 entah bagaimana menjadi bagian dari masalah sekarang (akhir april 2015).
Reinout van Rees
Catatan tambahan terakhir: masalah inti adalah masalah microsoft yang diketahui dengan penyimpanan emc isilon dan memperbarui KB3002657 (atau begitulah sysadmin saya memberi tahu saya sekarang :-))
Reinout van Rees
2

Kemungkinan lain yang saya temukan saat mencoba me-mount share hari ini adalah yang smbmountmendukung username=DOMAIN\\usersintaksis untuk memasok pengguna dalam domain sebagai kredensial.

Untuk mount.cifs(dan mount -t cifs) bekerja, kedua harus disediakan secara terpisah: -o username=user,password=pass,dom=DOMAIN.

fiskfisk
sumber
Untuk memasang pangsa seseorang 3.0 yang dilayani oleh NetApp Clustered Data ONTAP harus memanggil keduanya sec=ntlmdandom=DOMAIN
iii
1

Seperti yang dijelaskan oleh user55518, Anda mungkin memiliki spasi di file kredensial Anda meskipun Anda tidak melihatnya. Jika Anda mengedit file kredensial Anda di Windows, Anda mungkin memiliki \rdi akhir baris Anda dan itu melempar kesalahan 13.

Cyrlop
sumber
Anda dapat menggunakan daftar set perintah dalam vim untuk memeriksa tab / spasi tambahan
vfbsilva
0

Saya ingin mengucapkan terima kasih semuanya !!! untuk masalah ini, ini benar-benar banyak membantu saya !, juga saya menemukan beberapa informasi penting tentang parameter "sec = ntlm", jadi saya meninggalkan tautan jika beberapa dari Anda tertarik tentang hal itu, baris di bawah ini:

Microsoft NTLM

Saya mencoba untuk me-mount direktori share dari windows 7 desktop, tetapi saya tidak mungkin untuk menambahkan parameter "sec = ntlm" dan itu berfungsi, dan beberapa detail penting bisa jadi saya tidak mempertimbangkan bahwa desktop windows 7 saya menjadi domain, jadi saya pikir itu adalah detail paling penting yang harus saya pertimbangkan. oleh karena itu, Ini berhasil !, sangat berterima kasih banyak untukmu semua!, berkah !! dan getaran yang bagus! : D

DarkPenguin15
sumber
0

Dalam kasus saya, saya hanya perlu menambahkan opsi vers=3.0(CIFS adalah versi 1, yang tidak lagi didukung sejak kernel 4.13, jadi saya beralih ke SMBv3 di server) dan saya masih harus reboot untuk membuatnya berfungsi, ini adalah saya pasang garis /etc/fstabsekarang:

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

File kredensial saya:

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

Sebenarnya, domaintidak diperlukan, tetapi ini adalah pilihan yang tepat untuk digunakan sesuai dengan halaman manual mount.cifs sekarang.

Gregor
sumber
0

Saya telah berjuang dengan ini untuk sementara waktu.

Dengan kesalahan berikut:

mount error(112): Host is down

di sini itu membantu untuk mengatur opsi vers = 1.0, kemudian dilaporkan

mount error(13): Permission denied

dan ternyata "karakter tambahan dalam file kredensial saya

tempat asal saya:

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

di mana seharusnya

# cat /etc/samba/cred-file
username=john
password=secret
remigiusz boguszewicz
sumber