Jak zamontować udział Samby jako użytkownik inny niż root

14

Czy istnieje samouczek krok po kroku, który szczegółowo instruuje, jak smbmount udział Samba, który ma być używany przez użytkownika innego niż root na pulpicie Ubuntu 10.04?

Uwaga: w wyszukiwarce Google jest wiele wątków dotyczących tego pozornie nowego problemu. Instrukcje, które działały na Ubuntu 8.04 (lub starszej wersji smbfs) nie działają.

Muszę znaleźć coś aktualnego i powtarzalnego.

Android Eve
źródło

Odpowiedzi:

13

Bardzo miłym narzędziem do łatwego montowania udziałów samby w folderze domowym jest SMBNetFS . Dzięki temu narzędziu możesz uzyskać dostęp do udziałów samby przez prawie wszystkie aplikacje po prostu przez punkt montowania w domu.

Jak korzystać z SMBnetFS:

  • Zainstaluj pakiet za pomocą menedżera pakietów
  • cp /etc/smbnetfs.conf ~/.smb/smbnetfs.conf skopiuj standardową konfigurację
  • cp /etc/samba/smb.conf ~/.smb/smb.conf skopiuj konfigurację samby
  • mkdir ~/sambashare lub dowolna inna nazwa punktu montowania
  • smbnetfs ~/sambashare zamontuj udziały w punkcie montowania

Niestety dostępna jest tylko niewielka dokumentacja. Sprawdź man smbnetfsopcje i przejdź do pliku FAQ w /usr/share/doc/smbnetfs.

Takkat
źródło
+1 za szczegółowe kroki. Mam nadzieję, że to działa z Eclipse, ponieważ z gvfs Eclipse zdecydowanie nie działa. Czy wiesz, czym różni się SMBnetFS od smbfs?
Android Eve
2
SMBNetFS używa bezpiecznika. Upewnij się, że użytkownicy są w fusegrupie.
Takkat
+1 ponownie! Czy gfvs nie używa również FUSE? Czym różni się od tego, co już przygotowałem (gvfs) na moim pulpicie GNOME?
Android Eve
8

Korzystając z gnome, możesz po prostu wpisać adres URL smb: // w Nautilus. Zwykle należy zainstalować gvfs-fuse i inne pakiety gvfs, aby można było montować sambę bezpośrednio za pomocą przeglądarki plików. Dodatkowo powinieneś znaleźć wszystkie zamontowane rzeczy w swoim folderze ~ / .gvfs. Działa to nawet z innymi protokołami i skompresowanymi plikami itp.

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

Przetestowałem to za pomocą Eclipse i innych narzędzi i działa. gvfs-fuse musi być zainstalowany.

matthias.lukaszek
źródło
Dzięki, ale Eclipse nie działa z tym. Próbowałem już tego, dlatego właśnie pytałem o smbmount (dowiązanie symboliczne do mount.cifs, które jest częścią pakietu smbfs).
Android Eve
2
Więc zaćmienie nie ma dostępu do .gvfs w twoim domu, reż? O ile mi wiadomo, każdy program powinien być w stanie to zrobić. Popraw mnie, jeśli się mylę.
matthias.lukaszek
2

man mountpomoże ci określić, jakie opcje chcesz. Jeśli system Windows będzie zawsze dostępny. Możesz po prostu dodać mount do /etc/fstabi zostanie on zamontowany. Możesz zezwolić użytkownikowi na zamontowanie i odmontowanie partycji zgodnie z wymaganiami, korzystając z opcji user,noauto. Aby umożliwić innym odmontowanie, zmień userna users.

Autofs obsługuje także instalacje na żądanie przy użyciu samby. Inkantacja zależy od tego, które katalogi chcesz zamontować. Z powodzeniem uruchomiłem go w środowisku programistycznym.

EDYCJA: Jeśli musisz to zrobić dla wielu użytkowników, sugeruję użycie autofs do montażu. Nie wymaga to zmian w fstab. Problemem może być uzyskanie poświadczeń dla różnych użytkowników. Używam struktury katalogów w formularzu /net/$HOST/$USERdla moich montowań. Autofs jest skonfigurowany dla /net/$HOSTczęści montowania i automatycznie montuje pod nim katalogi w razie potrzeby.

Poszczególne sposoby montażu zależą od potrzeb. Miałem przypadki, w których użytkownicy potrzebowali zamontowanego na serwerze katalogu Desktop, chociaż typowe podłączenia są oparte na serwerze.

W przypadku dużej organizacji z dużą liczbą użytkowników sensowne może być przeniesienie katalogów na serwer Linux i użycie Samby do udostępniania plików użytkownikom Windows. Nie próbowałem odwrotnie, ale może być to możliwe.

BillThor
źródło
To działa, ale potrzebujesz dostępu do roota, aby zmienić fstab. Nawet jeśli są rootami, zauważ, że jest to niepraktyczne, jeśli musisz to zrobić dla wielu użytkowników, z których każdy ma konkretny udział do zamontowania (jak w dużej organizacji, w której każdy użytkownik ma osobisty udział w scentralizowanym serwerze plików).
0

Znalazłem to pytanie, badając magię, którą ostatnio wykonałem, aby zrobić to dokładnie dla jednego z moich użytkowników. Mój obieg pracy różni się znacznie od innych odpowiedzi. Pamiętaj jednak, że dotyczy to najprostszego możliwego przypadku.

Zakładając, że twoja nazwa użytkownika to aei twój dom to/home/ae

1) Skonfiguruj smbfs:
mkdir /home/ae/.smb

1a) Jeśli potrzebne są dane logowania do systemu Windows, utwórz i edytuj plik: /home/ae/.smb/smbnetfs.confaby mieć zawartość:

auth winuser "winpassword"

winuserto użytkownik utworzony na komputerze z systemem Windows, do którego chcesz uzyskać dostęp. winpasswordto hasło tego użytkownika, aby zalogować się do systemu Windows na tym komputerze.

2) Utwórz punkt montowania:
mkdir /home/ae/nethood

3) Wykonaj polecenie smbnetfs:
smbnetfs /home/ae/nethood


Zauważ, że całe „otoczenie sieciowe” pojawi się pod, /home/ae/nethooda grupy robocze będą pierwszą warstwą podkatalogów.

Wszystkie poniższe ogłoszenia zostały skopiowane z mojego przeglądania folderów jako nieuprzywilejowany użytkownik na hoście Ubuntu. Nazwa użytkownika i grupa zostały zmienione na ae. sudonigdy nie był używany. Komputery z systemem Windows pracują w nieformalnej sieci Windows, a foldery udostępnione są chronione hasłem / użytkownikiem (na komputerze z systemem Windows za pomocą nazwy użytkownika i hasła systemu 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

Przeglądaj grupę roboczą 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

Zmień katalog na komputery, a wszystkie udostępnione foldery zostaną wyświetlone i będą dostępne w normalny sposób.

$ 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

A pliki:

$ 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

Zauważ, że powyższe katalogi mają własność root root. Własność pliku będzie taka sama jak twojego użytkownika.

Żaden inny użytkownik nie będzie mógł uzyskać dostępu do folderów, niezależnie od punktu podłączenia, własności lub uprawnień do tego folderu. Jeśli użytkownik może „zapisywać” do tego folderu (i jest pusty), smbnetfs zainstaluje tam sąsiedztwo sieciowe i nawet nie pozwoli nikomu na dostęp root. Aby rootmieć dostęp, musisz su ae.


Jeśli nie ma folderów współdzielonych, katalog komputera będzie pusty.

Jeśli nie masz poświadczeń do komputera z systemem Windows, możesz otrzymać błąd:
ls: cannot open directory .: Input/output error

Chris K.
źródło