Ustaw odpowiednie prawa do punktu montowania sshfs, aby można go było udostępnić sambie

12

Mam usługodawcę hostingowego domeny, który zapewnia dostęp przez SSH.

Moje platformy to:

  • Gentoo 2.6.36-r5
  • Windows (XP / Vista / 7)

Pracuję na moim systemie Windows, używam Gentoo do robienia wszystkich magii, których Windows nie potrafi.

Dlatego używam sshfs do zamontowania zdalnego katalogu publicznego dla mojej domeny na /mnt/mydomain.com. Uwierzytelnianie odbywa się za pomocą kluczy, więc leniwy nie muszę od czasu do czasu wpisywać hasła.

Ponieważ wykonuję kodowanie w systemie Windows i nie chcę cały czas przesyłać / pobierać zmienionych plików, chcę uzyskać dostęp do tej witryny /mnt/mydomain.com za pośrednictwem udziału samba.

Udostępniłem / mnt w sambie, wszystkie wierzchowce oprócz mydomain.com są wymienione w moim Eksploratorze Windows.

Moje teorie to:

  1. sshfs nie ustawia mountid uid / gid na coś, czego oczekuje samba
  2. Samba nie wie, że musi zawierać identyfikator UID / GID ustawiony na /mnt/mydomain.com .
  3. Wszystko powyżej jest złe i nie wiem.

Oto konfiguracje i dane wyjściowe z konsoli, potrzebujesz czegoś innego, daj mi tylko znać. Również żadnych błędów i ostrzeżeń, które zauważam, że są istotne dla tego problemu, ale mogę się mylić.

gentoo ~ # ls -lah /mnt
total 20K
drwxr-xr-x  9 root  root  4.0K Mar 26 16:15 .
drwxr-xr-x 18 root  root  4.0K Mar 26  2011 ..
-rw-r--r--  1 root  root     0 Feb  1 16:12 .keep
drwxr-xr-x  1 root  root     0 Mar 18 12:09 buffer
drwxr-s--x  1 68591 68591 4.0K Feb 16 15:43 mydomain.com
drwx------  2 root  root  4.0K Feb  1 16:12 cdrom
drwx------  2 root  root  4.0K Feb  1 16:12 floppy
drwxr-xr-x  1 root  root     0 Sep  1  2009 services
drwxr-xr-x  1 root  root     0 Feb 10 15:08 www

/etc/samba/smb.conf

[mnt]
comment = Mount points
writable = yes
writeable = yes
browseable = yes
browsable = yes
path = /mnt

/ etc / fstab

sshfs#[email protected]:/home/to/pub/dir/ /mnt/mydomain.com/ fuse comment=sshfs,noauto,users,exec,uid=0,gid=0,allow_other,reconnect,follow_symlinks,transform_symlinks,idmap=none,SSHOPT=HostBasedAuthentication 0 0

Dla łatwiejszego czytania:

opcje:

  • komentarz = sshfs
  • noauto
  • użytkownicy
  • exec
  • uid = 0
  • gid = 0
  • allow_other
  • na nowo połączyć
  • follow_symlinks
  • transform_symlinks
  • idmap = brak
  • SSHOPT = HostBasedAuthentication

Wsparcie!

CS01
źródło
HostbasedAuthenticationNie zaleca się używania IIRC ( PubkeyAuthenticationpreferowany jest
tryb
SSHFS version 2.8 fuse: unknown option 'SSHOPT=HostBasedAuthentication'
Tom Hale,

Odpowiedzi:

11

sshfsjest systemem plików opartym na FUSE, a warstwa FUSE nie zezwala innym użytkownikom na domyślny dostęp do jego montowań ze względów bezpieczeństwa. Masz dostępne allow_otheropcje, ale będą one ignorowane do momentu edycji również w /etc/fuse.confcelu uwzględnienia user_allow_other.

użytkownik1686
źródło
1
Podczas wykonywania polecenia „ps aux” lewa kolumna wskazuje root dla procesów sshfs i smbd. „Analizuję” to, ponieważ oba działają z tymi samymi uprawnieniami. Z danych wyjściowych ls -lah widać, że UID nie jest rootem, ten UID jest ustawiany przez sshfs, ale nie mogę go ustawić, przynajmniej nie ze zmianą UID / GID w opcjach. Uważam, że samba w jakiś sposób uważa, że ​​musi wykluczyć ten konkretny katalog z identyfikatorem uid / gid 68591. (Próbuję usunąć pewne zamieszanie z mojej strony.)
CS01
@ CS01: Smbd „master” działa jako root, ale nie jest to prawdą w przypadku programów obsługi połączeń - jeśli logujesz się przez SMB jako „jim”, proces smbd również przełączy się na identyfikator UID „jim”.
user1686,
1
Musisz także zmapować UID i / lub GID do pożądanego użytkownika (-ów) za pomocą opcji uid = <UID>, gid = <GID>.
sweisgerber.dev,
Dziękuję wszystkim za odpowiedzi. Podsumowując, po przetestowaniu na najnowszej wersji Ubuntu: 1. update /etc/fuse.conf; 2. określ TRZY opcje polecenia sshfs ( -o allow_other -o uid=<UID> -o gid=<GID>). Wydaje się, że nie ma potrzeby restartowania smbd(ale nie jestem pewien, odkąd zrestartowałem i smbdtak).
bruin
2

Dlaczego nie montujesz sshfs bezpośrednio z systemu Windows?
Jest na to kilka darmowych rozwiązań ( więcej informacji tutaj i tutaj ).

użytkownik629926
źródło
1
Wow, to narzędzie jest świetne!
CS01
Nie wyglądają zbyt obiecująco i są zawieszone, przynajmniej teraz, po 3 latach :) Czy masz z nimi jakieś doświadczenie w zakresie stabilności?
sweisgerber.dev,
0

Ponieważ twoje normalne udziały smb działają, nie tracę ani słowa na temat konfiguracji Samby, ponieważ możesz sahre montować dokładnie tak, jak udostępniasz normalne foldery. Ale montowanie udziału SSH przez sshfs jest wyjątkowe w porównaniu z dostępem tylko do komputera lokalnego.

Aby zamontować swój udział za pomocą fstab, możesz umieścić tę linię w / etc / fstab i zamontować udział NA ŻĄDANIE. Jest to wygodniejsze niż polecenie wiersza polecenia c & p.

Ogólna linia etc / fstab:

**<USERNAME>**@<SERVER>:<REMOTE_PATH> /MOUNT/POINT fuse.sshfs noauto,users,idmap=user,IdentityFile=/path/to/.ssh/id_rsa,allow_other,reconnect,port=22,uid=<UID>,gid=<GID> 0 0

noauto: musisz go zamontować za pośrednictwem mount /MOUNT/POINT wszystkich innych informacji pobieranych z tej linii w / etc / fstab

users: pozwala zwykłym użytkownikom zamontować ten wpis montowania

reconnect: ponownie łączy / podłącza ponownie po gotowości, itp

uid = / gid =: mapuje zdalny identyfikator użytkownika / gid do tego lokalnego identyfikatora użytkownika / gid

Przykład:

[email protected]:/home/foo/music ~/foos_music fuse.sshfs noauto,users,idmap=user,IdentityFile=/home/foo/.ssh/id_rsa,allow_other,reconnect,port=22,uid=foo,gid=users 0 0

Wszystko, co musisz wiedzieć o montażu sshfs [ https://wiki.archlinux.org/index.php/Sshfs]

sweisgerber.dev
źródło