Impostare i diritti corretti per mountpoint di sshfs in modo che possa essere condiviso con samba


12

Ho un hoster di dominio che fornisce l'accesso tramite SSH.

Le mie piattaforme sono:

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

Lavoro su Windows, utilizzo Gentoo per fare tutto ciò che Windows non può fare.

Quindi uso sshfs per montare la directory pubblica remota per il mio dominio su /mnt/mydomain.com. L'autenticazione avviene tramite chiavi, quindi pigro non devo digitare la mia password di tanto in tanto.

Dato che eseguo la codifica su Windows e non voglio caricare / scaricare i file modificati in qualsiasi momento, desidero accedere a questo /mnt/mydomain.com tramite una condivisione samba.

Quindi ho condiviso / mnt in samba, tutti i montaggi tranne mydomain.com sono elencati sul mio Windows Explorer.

Le mie teorie sono:

  1. sshfs non imposta il mountpoint uid / gid su qualcosa che samba si aspetta
  2. samba non sa che deve includere l'uid / gid che è stato impostato /mnt/mydomain.com .
  3. Tutto quanto sopra è sbagliato e non lo so.

Ecco le configurazioni e l'output dalla console, serve altro per farmelo sapere. Inoltre, non ci sono errori o avvertenze che prendo atto di essere rilevante per questo problema, ma potrei sbagliarmi.

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#myusername@mywebhotel.com:/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

Per una lettura più semplice:

  • myusername@mywebhotel.com
  • / Home / a / pub / dir /
  • /mnt/mydomain.com/

opzioni:

  • comment = sshfs
  • noauto
  • utenti
  • exec
  • uid = 0
  • gid = 0
  • allow_other
  • riconnessione
  • follow_symlinks
  • transform_symlinks
  • idmap = none
  • SSHOPT = HostbasedAuthentication

Aiuto!


IIRC, HostbasedAuthenticationnon è raccomandato l'uso ( PubkeyAuthenticationsi preferisce la base utente )
user1686

SSHFS version 2.8 fuse: unknown option 'SSHOPT=HostBasedAuthentication'
Tom Hale,

Risposte:


11

sshfsè un file system basato su FUSE e il livello FUSE non consente ad altri utenti di accedere ai suoi montaggi per impostazione predefinita, per motivi di sicurezza. Hai allow_otherin opzioni, ma sarà ignorato fino a quando non si modifica anche /etc/fuse.confper includere user_allow_other.


1
Quando si esegue "ps aux", la colonna di sinistra indica root per entrambi i processi sshfs e smbd. Lo "analizzo" poiché entrambi funzionano con gli stessi privilegi. Dall'output ls -lah, vedi che uid non è root, questo uid è impostato da sshfs, ma non posso impostarlo, almeno non cambiando uid / gid nelle opzioni. Credo che la samba in qualche modo pensi che debba escludere quella specifica directory con uid / gid 68591. (Sto cercando di eliminare un po 'di confusione da parte mia.)
CS01

@ CS01: smbd "master" viene eseguito come root, ma ciò non è vero per i gestori di connessione - se si accede tramite SMB come "jim", anche il processo smbd passa all'UID di "jim".
user1686

1
È inoltre necessario mappare l'UID e / o GID agli utenti desiderati tramite le opzioni uid = <UID>, gid = <GID>.
sweisgerber.dev,

Grazie a tutti per le risposte. per riassumere, dopo aver testato su una versione recente di Ubuntu: 1. update /etc/fuse.conf; 2. specificare TRE opzioni del comando sshfs ( -o allow_other -o uid=<UID> -o gid=<GID>). Sembra non sia necessario riavviare smbd(ma non sono sicuro da quando ho riavviato smbdcomunque).
bruin

2

Perché non montate sshfs direttamente da Windows?
Ci sono un paio di soluzioni gratuite per questo (vedi qui e qui per maggiori informazioni).


1
Caspita, questo strumento è fantastico!
CS01,

Non sembrano molto promettenti e sono sospesi, almeno ora, dopo 3 anni :) Hai qualche esperienza di stabilità con loro?
sweisgerber.dev,

0

Dato che le tue normali condivisioni smb funzionano, non perdo una parola sulla configurazione di Samba, perché puoi salvare i montaggi sshfs esattamente come condividi le normali cartelle. Ma montare la condivisione SSH tramite sshfs è speciale rispetto al solo accesso alla macchina locale.

Per montare la tua condivisione tramite fstab, puoi mettere questa linea in / etc / fstab e montare la condivisione SU RICHIESTA. È più conveniente di c & p il comando commandline.

Linea generica 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: devi montarlo tramite mount /MOUNT/POINT tutte le altre informazioni che vengono estratte da questa linea in / etc / fstab

utenti: consente agli utenti normali di montare questa voce di montaggio

riconnetti: ricollega / rimonta il ahre dopo lo standby, ecc

uid = / gid =: mappa l'uid / gid remoto su questo uid / gid locale

Esempio:

foo@example.org:/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

Tutto quello che devi sapere sul montaggio di sshfs [ https://wiki.archlinux.org/index.php/Sshfs]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.