Cara yang tepat untuk me-mount share samba

9

Saya ingin memasang sistem file jaringan CIFS dengan samba di sistem Linux Arch saya. Saya ingin me-mount sistem file ini setiap kali saya masuk (baik melalui ssh, TTY, atau melalui KDM).

Saya bisa sangat dekat dengan apa yang saya inginkan dengan menambahkan berbagi jaringan /etc/fstab. "Masalah" terbesar adalah bahwa ini mengharuskan pengodean kata sandi saya menjadi sulit /etc/fstabatau membuat file kredensial dengan nama pengguna dan kata sandi saya. Tampaknya tidak aman bagi saya untuk menyimpan nama pengguna dan kata sandi saya dalam file teks biasa bahkan jika saya mengatur izin ke 600.

Apakah ada cara "tepat" untuk mengotomatiskan berbagi jaringan secara aman? Dapatkah saya melakukan ini dengan PAM (nama pengguna dan kata sandi saya sama pada kedua mesin) dan jika demikian bagaimana?

StrongBad
sumber
Sudahkah Anda melihat pam_cifs ? "pam_cifs adalah modul Linux-PAM untuk me-mount dan meng-unmount saham CIFS saat login dengan basis per-pengguna"
a CVn
Atau pam_mount, saya tidak punya pengalaman khusus, tetapi tampaknya dirancang untuk melakukan ini.
EightBitTony
@EightBitTony menemukan pam_mount menuntun saya untuk mengajukan pertanyaan, saya berharap seseorang mungkin dapat memberi tahu saya lebih definitif apakah itu cara untuk pergi dan jika demikian bagaimana.
StrongBad

Jawaban:

8

Metode # 1 - /etc/fstab

Saya sadar Anda sedang mencari alternatif untuk ini, tetapi di sini secara khusus cara mengeluarkan kredensial Anda dari /etc/fstabfile:

//WindowsHost/Sharename /LocalMountPoint cifs credentials=/etc/cifsauth 0 0

Kemudian di file /etc/cifsauth:

username=someuser
password=somepass

Buat izin file ini 600, yaitu chmod 600 /etc/cifsauth.

Metode # 2 - pam_mount

Anda dapat menginstal pam_mount dan kemudian mengatur pemasangan generik untuk semua pengguna yang masuk seperti ini:

# /etc/security/pam_mount.conf.xml
<debug enable="1" />
<volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />

Metode ini masih memiliki masalah yang sama dengan metode # 1, di mana kredensial disimpan dalam file /home/%(USER)/.Music.cred,. Ini adalah jenis file kredensial yang sama seperti pada metode pertama, jadi pastikan izinnya juga 600.

Metode # 3 - gunakan gvfs-mount

U&L T&J ini berjudul: Dapatkah saya mengotomatiskan pemasangan cif berbagi tanpa menyimpan kata sandi dalam plaintext? berisi jawaban oleh @Gilles yang menjelaskan tentang menggunakan GNOME Keyring untuk mempertahankan kredensial CIFS Anda.

Anda kemudian dapat mengakses saham CIFS menggunakan GVFS - Sistem File Virtual GNOME - seperti ini:

$ gvfs-mount smb://username\;workgroupname@hostname/sharename

Ini akan memetakan pembagian dari nama host yang disebut sharename dan memasangnya di bawah $HOME/.vfs/sharename on hostname. Anda tidak dapat mengendalikan ini dengan cara apa pun. Hardcoded untuk selalu dipasang di sini, saya sudah melihat!

Namun Anda dapat membuat tautan ke tunggangan ini yang merupakan apa yang saya lakukan sehingga saya dapat mengakses bagian yang telah saya pasang. Penggunaannya .gvfssangat disayangkan karena beberapa alat tidak mencantumkan dot direktori dalam penjelajahan file sehingga sering kali tautan yang saya buat adalah satu-satunya cara untuk mengakses bagian ini.

slm
sumber
jika Anda membuat file sebagai tersembunyi, katakan .cifsauth, dan 'username =' tidak diperlukan, cukup kredensial = / etc / .cifsauth
Rahul Patil
@RahulPatil - apakah Anda mengatakan bahwa Anda harus membuat kredensial yang diberi nama .cifsauthuntuk menghapus username=, atau bahwa username=keadilan tidak diperlukan bersama-sama?
slm
ya ... Jawaban Bagus .. !! +1 untuk pam_mount
Rahul Patil
@RahulPatil - bit mana yang Anda setujui?
slm
2

Ternyata itulah pam_mountjalan yang harus ditempuh. Anda menambahkan berbagi jaringan ke/etc/security/pam_mount.conf.xml

<volume user="yourUserName" fstype="auto" path="//path/to/the/network/share" mountpoint="/path/to/the/mount/point" options="username=yourUserName" />
<mkmountpoint enable="1" remove="true" />

Ini harus secara teoritis mungkin untuk menggunakan %(USER), %(USERUID)dan %(USERGID)variabel untuk membuatnya me-mount umum, tapi aku tidak bisa mendapatkan bagian untuk bekerja pada Arch Linux. Anda juga perlu mengkonfigurasi sistem Anda untuk digunakan pam_mount. Anda perlu memodifikasi keduanya /etc/pam.d/system-authdan login-manager yang sesuai. Untuk KDM itu /etc/pam.d/kde. Modifikasi pada dasarnya melibatkan penambahan optional pam_mount.soke setiap bagian dari kedua file, tetapi detail yang tepat rumit karena masalah pemesanan. Saya mengikuti Arch Wiki .

Dengan pengaturan ini dan nama pengguna / kata sandi yang sama di server dan mesin saya, saya dapat memasang secara otomatis tanpa menyimpan file kredensial di mana pun.

StrongBad
sumber
Ini bagus ... Sebagai soal prinsip saya lebih suka solusi fstab - saya tidak suka pamdan sisanya, secara pribadi, dan saya perhatikan mereka memiliki kecenderungan untuk merangkak lebih jauh ke konfigurasi sistem - tetapi ini pasti menjawab pertanyaan. Bisakah saya bertanya mengapa Anda begitu menentang menyimpan kredensial? Izin pengguna dan / atau kepemilikan / enkripsi file harus lebih dari cukup di sana. Pada beberapa sistem Anda bahkan dapat menyimpan informasi seperti itu di vars firmware yang hanya dapat diakses setelah otentikasi. sshmenyimpan kredensial berdasarkan izin fs, misalnya, bukan?
mikeserv
@ mikeserv, kami menggunakan sistem masuk tunggal sehingga admin sistem yang memiliki akses root ke mesin dengan file kredensial saya, mungkin tidak memiliki akses root ke semua server yang kata sandi saya dapat saya akses.
StrongBad