Gắn kết Samba với lời nhắc mật khẩu là người dùng không root


16

Tôi muốn gắn kết chia sẻ SMB được bảo vệ bằng mật khẩu (được cung cấp bởi máy Windows). Chia sẻ được bảo vệ bởi tên người dùng và mật khẩu và tôi không thể ghi mật khẩu vào một tệp, tôi muốn được nhắc nhập mật khẩu tại thời điểm gắn kết.

Tôi cần một giải pháp hoạt động ngay cả khi người dùng trên máy khách không có bất kỳ đặc quyền quản trị nào, vì vậy, bất kỳ phương pháp nào được sử dụng để gắn kết chia sẻ đều không cho phép anh ta có được quyền root. Việc cài đặt ban đầu có thể được thực hiện như root. Người dùng phải có khả năng chỉ định tên máy chủ tùy ý. Nhu cầu trước mắt của tôi là với Ubuntu 12.04, nhưng giải pháp áp dụng càng rộng thì càng tốt.

Máy khách không đầu, vì vậy tôi đang tìm kiếm một công cụ dòng lệnh.

Những gì tôi đã cố gắng:

  • mount.cifs: trong khi nó có thể được tạo ra root setuid, các tác giả của nó không coi nó là an toàn . Chạy nó dưới sudocó cùng một vấn đề.
  • smbnetfs, fusesmb: Tôi không thể thuyết phục ai trong số họ nhắc tôi nhập mật khẩu.
  • Nautilus và gvfs: gvfs-mount smb://servername/sharenamethất bại với Error mounting location: volume doesn't implement mount.

Làm cách nào tôi có thể gắn kết chia sẻ Samba từ dòng lệnh, với tư cách là người dùng không root, bằng dấu nhắc mật khẩu?


Một trong những nhà phát triển chính dường như đã nới lỏng lập trường của họ về các vấn đề setuid. Trích dẫn: "Mã đã được làm lại một cách đáng kể và sẽ an toàn hơn nhiều so với trước đây. Hiện tại, việc phân tách đặc quyền sao cho phần lớn quá trình gắn kết được thực hiện như một người dùng không có đặc quyền và nếu được liên kết với các lib đúng, với các khả năng được cắt tỉa đến mức tối thiểu. Tại thời điểm này, tôi muốn nói rằng nó đủ an toàn để chúng ta không còn cần phải hạn chế cài đặt root setuid. " nguồn: list.samba.org/archive/samba/2010-April/154935.html Hình tôi nên chỉ ra điều đó.
Tim

Câu trả lời:


19

Vị trí lắp đặt Lỗi: khối lượng không thực hiện gắn kết, rõ ràng có nghĩa là dịch Tôi cần D-Bus nhưng nó không có sẵn. (Cảm ơn đồng nghiệp guru của venturax về thông tin này.) Trong phiên SSH, tôi có thể sử dụng gvfs-mountvới điều kiện dbus-daemonđược khởi chạy trước và biến môi trường DBUS_SESSION_BUS_ADDRESSđược đặt.

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

gvfs-mountvà các tiện ích GVFS khác đều phải nói về cùng một phiên D-Bus. Do đó, nếu bạn sử dụng nhiều phiên SSH hoặc sử dụng gắn kết trong các phiên đăng nhập, bạn phải:

  • khởi động D-Bus lần đầu tiên khi cần thiết, muộn nhất;
  • Cẩn thận không để D-Bus kết thúc phiên, miễn là có các hệ thống tệp GVFS được gắn kết;
  • sử dụng lại phiên D-Bus hiện tại vào thời điểm đăng nhập nếu có.

Xem Tái sử dụng các phiên D-Bus qua các phiên đăng nhập để biết điều đó.


1
Điều này cũng áp dụng cho gio mountcác phiên bản Ubuntu gần đây.
jnas

1

SMBNetFS sử dụng khóa Gnome theo mặc định. Bất kỳ mật khẩu nào được nhập và lưu trong khóa Gnome trong khi duyệt chia sẻ Samba trong Nautilus đều phải được sử dụng tự động. Vì vậy, nếu lưu trữ mật khẩu trong Gnome-keyring là OK, SMBNetFS sẽ thuận tiện hơn. Nó tự động gắn kết toàn bộ khu phố. Thông tin này là từ tệp cấu hình SMBNetFS mẫu, nhưng tôi đã không kiểm tra nó vì tôi không sử dụng Gnome.

Về việc sử dụng các keyring Gnome mà không X11, xem sử dụng gnome-keyring-daemon mà không cần X .

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.