Samba mount dengan kata sandi prompt sebagai pengguna non-root

17

Saya ingin me-mount share SMB yang dilindungi kata sandi (dilayani oleh mesin Windows). Pangsa dilindungi oleh nama pengguna dan kata sandi, dan saya tidak boleh menulis kata sandi dalam sebuah file, saya ingin dimintai kata sandi saat mount.

Saya memerlukan solusi yang berfungsi bahkan ketika pengguna pada mesin klien tidak memiliki hak administratif, jadi metode apa pun yang digunakan untuk me-mount berbagi tidak boleh memungkinkannya untuk mendapatkan izin root. Instalasi awal dapat dilakukan sebagai root. Pengguna harus dapat menentukan nama server yang berubah-ubah. Kebutuhan mendesak saya adalah dengan Ubuntu 12.04, tetapi solusi yang lebih luas berlaku adalah lebih baik.

Klien tanpa kepala, jadi saya mencari alat baris perintah.

Apa yang saya coba:

  • mount.cifs: walaupun dapat dibuat setuid root, penulisnya tidak menganggapnya aman . Menjalankannya di bawah sudomemiliki masalah yang sama.
  • smbnetfs, fusesmb: Saya tidak dapat meyakinkan mereka untuk meminta kata sandi.
  • Nautilus dan gvfs: gvfs-mount smb://servername/sharenamegagal dengan Error mounting location: volume doesn't implement mount.

Bagaimana cara saya me-mount share Samba dari baris perintah, sebagai pengguna non-root, dengan prompt kata sandi?

Gilles 'SO- berhenti menjadi jahat'
sumber
1
Salah satu pemimpin dev tampaknya telah melonggarkan sikap mereka pada masalah setuid. Kutipan: "Kode ini telah dikerjakan ulang secara substansial dan harus jauh lebih aman daripada sebelumnya. Itu memang pemisahan istimewa sekarang sehingga sebagian besar proses mount dilakukan sebagai pengguna yang tidak memiliki hak istimewa, dan jika dikaitkan dengan lib yang tepat, dengan kemampuan yang dipangkas. ke minimum. Pada titik ini, saya akan mengatakan itu cukup aman sehingga kita tidak perlu lagi membatasi untuk menginstal setuid root. " sumber: lists.samba.org/archive/samba/2010-April/154935.html Berpikir saya harus menunjukkannya.
Tim

Jawaban:

20

“Lokasi pemasangan yang salah: volume tidak menerapkan mount” tampaknya diterjemahkan menjadi “Saya butuh D-Bus tetapi tidak tersedia”. (Terima kasih kepada kolega guru venturax untuk informasi ini.) Dalam sesi SSH, saya dapat menggunakan gvfs-mountasalkan dbus-daemondiluncurkan terlebih dahulu dan variabel lingkungan DBUS_SESSION_BUS_ADDRESSdiatur.

export $(dbus-launch)
gvfs-mount smb://workgroupname\;username@hostname/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'

gvfs-mountdan utilitas GVFS lainnya semua harus berbicara dengan sesi D-Bus yang sama. Oleh karena itu, jika Anda menggunakan beberapa sesi SSH atau menggunakan mount di seluruh sesi login, Anda harus:

  • mulai D-Bus saat pertama dibutuhkan, paling lambat;
  • berhati-hatilah agar D-Bus tidak berakhir dengan sesi ini, selama ada sistem file GVFS yang sudah terpasang;
  • gunakan kembali sesi D-Bus yang ada saat login jika ada.

Lihat Menggunakan Kembali sesi D-Bus di seluruh sesi login untuk itu.

Gilles 'SO- berhenti menjadi jahat'
sumber
1
Ini juga berlaku untuk gio mountdalam versi ubuntu terbaru.
jnas
1

SMBNetFS menggunakan Gnome-keyring secara default. Kata sandi apa pun yang dimasukkan dan disimpan di Gnome-keyring saat meramban saham Samba di Nautilus harus digunakan secara otomatis. Jadi, jika menyimpan kata sandi di Gnome-keyring tidak masalah, SMBNetFS lebih nyaman. Secara otomatis me-mount seluruh lingkungan jaringan. Informasi ini dari contoh file konfigurasi SMBNetFS, tapi saya belum mengujinya karena saya tidak menggunakan Gnome.

Mengenai penggunaan keyring Gnome tanpa X11, melihat penggunaan gnome-keyring-daemon tanpa X .

Sameer
sumber