Cách thích hợp để gắn kết samba


9

Tôi muốn gắn kết một hệ thống tập tin mạng CIFS với samba trên hệ thống Arch Linux của tôi. Tôi muốn gắn kết hệ thống tập tin này bất cứ khi nào tôi đăng nhập (thông qua ssh, TTY hoặc qua KDM).

Tôi có thể đến khá gần với những gì tôi muốn bằng cách thêm chia sẻ mạng vào /etc/fstab. "Vấn đề" lớn nhất là điều này đòi hỏi phải mã hóa cứng mật khẩu của tôi vào /etc/fstabhoặc tạo tệp thông tin đăng nhập bằng tên người dùng và mật khẩu của tôi. Tôi có vẻ không an toàn khi giữ tên người dùng và mật khẩu của mình trong một tệp văn bản đơn giản ngay cả khi tôi đặt quyền thành 600.

Có cách "thích hợp" nào để tự động chia sẻ mạng một cách an toàn không? Tôi có thể làm điều này với PAM (tên người dùng và mật khẩu của tôi giống nhau trên cả hai máy) và nếu vậy thì thế nào?


Bạn đã xem pam_cifs chưa? "pam_cifs là mô-đun Linux-PAM để gắn kết và ngắt kết nối cổ phiếu CIFS khi đăng nhập trên cơ sở mỗi người dùng"
CVn

Hoặc pam_mount, tôi không có kinh nghiệm cụ thể, nhưng có vẻ như nó được thiết kế để làm điều này.
EightBitTony

@EightBitTony tìm pam_mount dẫn tôi đặt câu hỏi, tôi hy vọng ai đó có thể nói với tôi dứt khoát hơn nếu đó là cách để đi và nếu vậy thì làm thế nào.
StrongBad

Câu trả lời:


8

Phương pháp số 1 - /etc/fstab

Tôi nhận thấy bạn đang tìm giải pháp thay thế cho vấn đề này nhưng cụ thể đây là cách lấy thông tin đăng nhập của bạn ra khỏi /etc/fstabtệp:

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

Sau đó trong tệp /etc/cifsauth:

username=someuser
password=somepass

Tạo quyền của tập tin này 600, tức là chmod 600 /etc/cifsauth.

Phương pháp # 2 - pam_mount

Bạn có thể cài đặt pam_mount và sau đó thiết lập một mount chung cho tất cả người dùng đăng nhập như thế này:

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

Phương pháp này vẫn có cùng một vấn đề như phương pháp # 1, trong đó thông tin đăng nhập được lưu trữ trong một tệp , /home/%(USER)/.Music.cred. Đây là cùng loại tệp thông tin xác thực như trong phương thức đầu tiên, vì vậy hãy đảm bảo rằng các quyền cũng là 600.

Phương pháp # 3 - sử dụng gvfs-mount

Câu hỏi và trả lời về U & L này có tiêu đề: Tôi có thể tự động gắn kết chia sẻ cifs mà không lưu trữ mật khẩu của mình trong bản rõ không? chứa câu trả lời của @Gilles, mô tả bằng cách sử dụng Khóa Gnome để giữ lại thông tin đăng nhập CIFS của bạn.

Sau đó, bạn có thể truy cập vào các chia sẻ CIFS bằng GVFS - Hệ thống tệp ảo Gnome - như thế này:

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

Điều này sẽ ánh xạ chia sẻ từ tên máy chủ được gọi là sharename và gắn kết nó bên dưới $HOME/.vfs/sharename on hostname. Bạn không thể kiểm soát điều này bằng mọi cách. Nó được mã hóa để luôn được gắn ở đây, tôi đã xem!

Tuy nhiên, bạn có thể tạo liên kết đến các gắn kết này, đó là những gì tôi làm để tôi có thể truy cập vào các chia sẻ mà tôi đã gắn kết. Việc sử dụng .gvfsrất đáng tiếc vì một số công cụ không liệt kê các thư mục dấu chấm trong trình duyệt tệp nên thường liên kết tôi đã tạo là cách duy nhất để truy cập các chia sẻ này.


nếu bạn thực hiện tập tin ẩn .cifsauth nói, và 'username =' không cần thiết, chỉ credentials = / etc / .cifsauth đủ
Rahul Patil

@RahulPatil - bạn có nói rằng bạn phải tạo thông tin đăng nhập được đặt tên .cifsauthđể xóa username=hoặc username=không cần thiết tất cả cùng nhau?
slm

vâng ... Trả lời tốt đẹp .. !! +1 cho pam_mount
Rahul Patil

@RahulPatil - bạn đồng ý với bit nào?
slm

2

Hóa ra đó pam_mountlà con đường để đi. Bạn thêm chia sẻ mạng vào/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" />

Nó phải là về mặt lý thuyết có thể sử dụng %(USER), %(USERUID)%(USERGID)các biến để làm cho nó một vị tướng gắn kết, nhưng tôi không thể nhận được rằng một phần để làm việc trên Arch Linux. Bạn cũng cần cấu hình hệ thống của bạn để sử dụng pam_mount. Bạn cần sửa đổi cả hai /etc/pam.d/system-authvà trình quản lý đăng nhập tương ứng của bạn. Đối với KDM, nó là /etc/pam.d/kde. Các sửa đổi về cơ bản liên quan đến việc thêm optional pam_mount.sovào mọi phần của cả hai tệp, nhưng các chi tiết chính xác là khó khăn vì vấn đề đặt hàng. Tôi đã theo Arch Wiki .

Với thiết lập này và cùng tên người dùng / mật khẩu trên máy chủ và máy của tôi, tôi có thể tự động gắn kết mà không cần lưu tệp thông tin xác thực ở bất cứ đâu.


Điều này là tốt ... Theo nguyên tắc, tôi thích giải pháp fstab hơn - pamcá nhân tôi không thích và phần còn lại, và tôi nhận thấy họ có xu hướng leo lên hơn nữa để cấu hình hệ thống - nhưng điều này chắc chắn trả lời câu hỏi. Tôi có thể hỏi mặc dù tại sao bạn lại phản đối việc lưu trữ thông tin đăng nhập không? Quyền của người dùng và / hoặc quyền sở hữu / mã hóa tập tin nên là quá đủ ở đó. Trên một số hệ thống, bạn thậm chí có thể lưu trữ thông tin đó trong các phần sụn chỉ có thể truy cập được sau khi xác thực. sshlưu trữ thông tin xác thực dựa trên quyền fs, ví dụ, phải không?
mikeerv

@mikeerv chúng tôi sử dụng một hệ thống đăng nhập duy nhất để quản trị viên hệ thống có quyền truy cập root vào máy với tệp thông tin đăng nhập của tôi, có thể không có quyền truy cập root vào tất cả các máy chủ mà mật khẩu của tôi giúp tôi truy cập.
StrongBad
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.