Как мне смонтировать общий ресурс Samba от имени пользователя без полномочий root

14

Существует ли пошаговое руководство, в котором подробно объясняется, как подключить общий ресурс Samba для использования пользователем без полномочий root на рабочем столе Ubuntu 10.04?

Примечание: в поиске Google есть множество тем, посвященных этой, казалось бы, новой проблеме. Инструкции, которые раньше работали в Ubuntu 8.04 (или более старой версии smbfs), больше не работают.

Мне нужно найти что-то современное и воспроизводимое.

Android Eve
источник

Ответы:

13

SMBNetFS - очень хороший инструмент для простого монтирования общих папок samba в домашнюю папку . С помощью этого инструмента вы можете получить доступ к общим ресурсам samba практически всеми приложениями просто через точку монтирования в вашем доме.

Как использовать SMBnetFS:

  • Установите пакет через менеджер пакетов
  • cp /etc/smbnetfs.conf ~/.smb/smbnetfs.conf скопировать стандартную конфигурацию
  • cp /etc/samba/smb.conf ~/.smb/smb.conf скопировать конфигурацию самбы
  • mkdir ~/sambashare или любое другое имя для точки монтирования
  • smbnetfs ~/sambashare смонтировать общие ресурсы к точке монтирования

К сожалению, доступно очень мало документации. Посмотрите man smbnetfsварианты и просмотрите файл FAQ в /usr/share/doc/smbnetfs.

Takkat
источник
+1 для подробных шагов. Я надеюсь, что это работает с Eclipse, потому что с gvfs Eclipse определенно не работает. Вы случайно не знаете, чем SMBnetFS отличается от smbfs?
Android Eve
2
SMBNetFS использует предохранитель. Убедитесь, что пользователи в fuseгруппе.
Таккат
+1 снова! Разве gfvs также не использует FUSE? Чем он отличается от того, что у меня уже есть (gvfs) с моим рабочим столом GNOME?
Android Eve
8

При использовании gnome вы можете просто ввести smb: // url в Nautilus. Обычно следует установить gvfs-fuse и другие пакеты gvfs, чтобы вы могли монтировать samba напрямую с помощью файлового браузера. Кроме того, вы должны найти все смонтированные файлы в папке ~ / .gvfs. Это даже работает с другими протоколами и сжатыми файлами и т. Д.

gvfs-mount smb://user@server/storage

Я проверил его с помощью Eclipse и других инструментов, и он работает. gvfs-fuse должен быть установлен.

matthias.lukaszek
источник
Спасибо, но Затмение не будет работать с этим. Я уже пробовал это, поэтому я специально спрашивал о smbmount (символическая ссылка на mount.cifs, которая является частью пакета smbfs).
Android Eve
2
Так затмение не может получить доступ к .gvfs в вашем домашнем каталоге? Насколько я знаю, каждая программа должна быть в состоянии сделать это. Поправьте меня если я ошибаюсь.
matthias.lukaszek
2

man mountпоможет вам определить, какие варианты вы хотите. Если система Windows будет всегда доступна. Вы можете просто добавить крепление к /etc/fstabи оно будет смонтировано. Вы можете разрешить пользователю монтировать и размонтировать раздел, как требуется, используя параметры user,noauto. Чтобы позволить другим размонтировать его, измените userна users.

Autofs также поддерживает монтирование по требованию с использованием samba. Заклинание зависит от того, какие каталоги вы хотите смонтировать когда. Я успешно запустил его в среде разработки.

РЕДАКТИРОВАТЬ: Если вам нужно сделать это для большого количества пользователей, я предлагаю использовать autofs для монтажа. Это не требует изменений в fstab. Получение учетных данных для различных пользователей может быть проблемой. Я использую структуру каталогов в форме /net/$HOST/$USERдля моих креплений. Autofs настраивается для /net/$HOSTчасти монтирования и автоматически монтирует каталоги под ним при необходимости.

Конкретные подходы к монтажу зависят от ваших потребностей. У меня были случаи, когда пользователям требовалось, чтобы их каталог рабочего стола был смонтирован на сервере, хотя типичные крепления монтируются на сервере.

Для большой организации с большим количеством пользователей может иметь смысл переместить каталоги на сервер Linux и использовать Samba для обмена файлами с пользователями Windows. Я не пробовал обратное, но это возможно.

BillThor
источник
Это работает, но вам нужен root-доступ для изменения fstab. Даже если вы являетесь пользователем root, обратите внимание, что это практически нецелесообразно, если вам придется делать это для большого количества пользователей, у каждого из которых есть свой монтируемый общий ресурс (как в большой организации, где у каждого пользователя есть личный общий ресурс на централизованном файловом сервере).
0

Я нашел этот вопрос, исследуя магию, которую я недавно совершил, чтобы сделать именно это для одного из моих пользователей. Мой рабочий процесс заметно отличается от других ответов. Обратите внимание, однако, что это самый простой случай.

Предполагая, что ваше имя пользователя aeи ваш дом/home/ae

1) Настройте smbfs:
mkdir /home/ae/.smb

1a) Если необходимы учетные данные для входа в Windows, создайте и отредактируйте файл: /home/ae/.smb/smbnetfs.confчтобы иметь содержимое:

auth winuser "winpassword"

winuserпользователь, созданный на компьютере Windows, к которому вы хотите получить доступ. winpasswordпароль этого пользователя для входа в Windows на этом компьютере.

2) Создайте точку монтирования:
mkdir /home/ae/nethood

3) Выполните команду smbnetfs:
smbnetfs /home/ae/nethood


Обратите внимание, что вся «сетевая окрестность» будет отображаться под /home/ae/nethoodрабочими группами, являющимися первым уровнем подкаталогов.

Все перечисленные ниже списки были скопированы из моего просмотра папок как непривилегированный пользователь на хосте Ubuntu. Имя пользователя и группа изменились на ae. sudoникогда не использовался. Компьютеры Windows находятся в неформальной сети Windows, а общие папки защищены пользователем / паролем (на компьютере Windows, используя имя пользователя и пароль Windows).

$ cd nethood
$ ls -alh
total 12K
drwxrwxrwx 9 ae   ae     0 Dec 31  1969 .
drwxr-xr-x 9 ae   ae    21 Jul 28 11:49 ..
drwxrwxrwx 2 root root   0 Dec 31  1969 WORKGROUP

Просмотрите рабочую группу WORKGROUP:

$ cd WORKGROUP
$ ls -alh
total 0
drwxrwxrwx 2 root root  0 Dec 31  1969 .
drwxrwxrwx 9 root root  0 Dec 31  1969 ..
lrwxrwxrwx 1 root root 11 Dec 31  1969 HTPC -> ../HTPC
lrwxrwxrwx 1 root root 14 Dec 31  1969 NEWPC -> ../NEWPC

Измените каталог на компьютеры, и все общие папки будут перечислены и доступны как обычно.

$ cd NEWPC
$ ls -alh
total 0
drwxrwxrwx 2 root root 0 Dec 31  1969 .
drwxrwxrwx 9 root root 0 Dec 31  1969 ..
drwxrwxrwx 2 root root 0 Dec 31  1969 Desktop
drwxrwxrwx 2 root root 0 Dec 31  1969 Users

И файлы:

$ cd Desktop/
$ ls -alh
ls: cannot access desktop.ini: No such file or directory
total 30M
drwxrwxrwx 2 root root     0 Dec 31  1969 .
drwxrwxrwx 2 root root     0 Dec 31  1969 ..
-rwxr--r-- 1 ae   ae    1.5K Jan 25  2013 Command Prompt.lnk
-????????? ? ?    ?        ?            ? desktop.ini
-rwxr--r-- 1 ae   ae    156K May 28  2013 Download %25285%2529.iif
-rwxr--r-- 1 ae   ae    2.4K Jul 24 12:28 Google Chrome.lnk
-rwxr--r-- 1 ae   ae     178 Feb  4  2013 import orders.bat
-rwxr--r-- 1 ae   ae    2.3M Mar 30  2012 msvc2008_x86_vcredist_x64.exe
drwxr-xr-x 2 ae   ae       0 May 20  2014 OpenOffice 4.1.0 (en-US) Installation Files
-rwxr--r-- 1 ae   ae    406K Jun  6  2013 Paypal_Jan_1_2012_to_Dec_31_2012.iif
-rwxr--r-- 1 ae   ae     15M May  8  2012 php-5.4.3-Win32-VC9-x86.zip
-rwxr--r-- 1 ae   ae    1.9K Jul 24 13:03 PSPad.lnk
-rwxr--r-- 1 ae   ae    1.1K Jul 24 12:31 VB Demo.lnk

Обратите внимание, что вышеуказанные каталоги имеют право собственности root root. Владение файлом будет таким же, как и у вашего пользователя.

Другие пользователи не смогут получить доступ к папкам независимо от точки монтирования, владельца или прав доступа к этой папке. Если ваш пользователь может «записать» в эту папку (а она пустая), smbnetfs установит сетевое окружение и даже не разрешит доступ кому-либо еще root. Чтобы rootиметь доступ, вы должны su ae.


Если нет общих папок, каталог компьютера будет пустым.

Если у вас нет учетных данных для компьютера Windows, вы можете получить сообщение об ошибке:
ls: cannot open directory .: Input/output error

Крис К
источник