Legen Sie die richtigen Rechte für den sshfs-Mountpoint fest, damit er mit Samba geteilt werden kann

12

Ich habe einen Domain-Hoster, der den Zugriff über SSH ermöglicht.

Meine Plattformen sind:

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

Ich arbeite an meinem Windows, ich benutze Gentoo, um all die Magie zu machen, die Windows nicht kann.

Daher verwende ich sshfs, um das öffentliche Remote-Verzeichnis für meine Domain unter /mnt/mydomain.com bereitzustellen. Die Authentifizierung erfolgt über Schlüssel, so dass ich nicht ab und zu mein Passwort eingeben muss.

Da ich meine Codierung unter Windows durchführe und die geänderten Dateien nicht ständig hochladen / herunterladen möchte, möchte ich über eine Samba-Freigabe auf diese /mnt/mydomain.com zugreifen.

Also habe ich / mnt in Samba geteilt, alle Mounts außer mydomain.com sind in meinem Windows Explorer aufgelistet.

Meine Theorien sind:

  1. sshfs setzt den Mountpoint uid / gid nicht auf etwas, das Samba erwartet
  2. samba weiß nicht, dass es die uid / gid enthalten muss, die /mnt/mydomain.com gesetzt wurde.
  3. Alles oben ist falsch und ich weiß es nicht.

Hier sind Konfigurationen und Ausgabe von der Konsole, brauche etwas anderes, lass es mich wissen. Auch keine Fehler oder Warnungen, die ich als relevant für dieses Problem zur Kenntnis nehme, aber ich könnte mich irren.

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

Zum leichteren Lesen:

Optionen:

  • comment = sshfs
  • noauto
  • Benutzer
  • exec
  • uid = 0
  • gid = 0
  • allow_other
  • wieder verbinden
  • follow_symlinks
  • transform_symlinks
  • idmap = keine
  • SSHOPT = HostBasedAuthentication

Hilfe!

CS01
quelle
IIRC, HostbasedAuthenticationwird nicht empfohlen zu verwenden (die benutzerbasierte PubkeyAuthenticationwird bevorzugt)
user1686
SSHFS version 2.8 fuse: unknown option 'SSHOPT=HostBasedAuthentication'
Tom Hale

Antworten:

10

sshfsist ein FUSE-basiertes Dateisystem, und die FUSE-Schicht erlaubt anderen Benutzern aus Sicherheitsgründen nicht, standardmäßig auf ihre Bereitstellungen zuzugreifen. Sie haben allow_otherin Optionen, aber es wird ignoriert, bis Sie auch bearbeiten, /etc/fuse.confum einzuschließen user_allow_other.

user1686
quelle
Bei der Ausführung von "ps aux" gibt die linke Spalte root für sshfs- und smbd-Prozesse an. Ich "analysiere" dies, da beide mit den gleichen Berechtigungen ausgeführt werden. Aus der ls-lah-Ausgabe geht hervor, dass die UID nicht root ist. Diese UID wird von sshfs festgelegt, aber ich kann sie nicht festlegen, zumindest nicht, wenn Sie die UID / GID in den Optionen ändern. Ich glaube, Samba glaubt irgendwie, dass es dieses bestimmte Verzeichnis mit uid / gid 68591 ausschließen muss. (Ich versuche, einige Verwirrung von meiner Seite zu
beseitigen
@ CS01: Der smbd "master" wird als root ausgeführt, dies gilt jedoch nicht für Verbindungshandler. Wenn Sie sich über SMB als "jim" anmelden, wechselt Ihr smbd-Prozess auch zur UID von "jim".
user1686
Sie müssen die UID und / oder GID auch Ihren gewünschten Benutzern über die Optionen uid = <UID>, gid = <GID> zuordnen.
sweisgerber.dev
2

Warum mounten Sie sshfs nicht direkt unter Windows?
Dafür gibt es einige kostenlose Lösungen (siehe hier und hier für weitere Informationen).

user629926
quelle
1
Wow, dieses Tool ist großartig!
CS01
Sie sehen nicht sehr vielversprechend aus und sind zumindest jetzt nach 3 Jahren suspendiert :) Haben Sie Stabilitätserfahrung mit ihnen?
sweisgerber.dev
0

Da Ihre normalen SMB-Freigaben funktionieren, verliere ich kein Wort bezüglich der Samba-Konfiguration, da Sie sshfs-Mounts genau so sahre können, wie Sie normale Ordner freigeben. Das Mounten der SSH-Freigabe über sshfs ist jedoch im Vergleich zum lokalen Computerzugriff etwas Besonderes.

Um Ihre Freigabe über fstab bereitzustellen, können Sie diese Zeile in / etc / fstab einfügen und die Freigabe ON REQUEST bereitstellen. Es ist bequemer als c & p der Befehlszeilenbefehl.

Generische etc / fstab Zeile:

**<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: Sie müssen es über mount /MOUNT/POINT alle anderen Informationen mounten, die aus dieser Zeile in / etc / fstab abgerufen werden

Benutzer: Ermöglicht normalen Benutzern das Mounten dieses Mount-Eintrags

wieder verbinden: verbindet / verbindet die Ahre nach dem Standby wieder usw.

uid = / gid =: Ordnet die entfernte uid / gid dieser lokalen uid / gid zu

Beispiel:

[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

Alles, was Sie über das Sshfs-Mounting wissen müssen [ https://wiki.archlinux.org/index.php/Sshfs]

sweisgerber.dev
quelle