Establezca los derechos adecuados para sshfs mountpoint para que pueda compartirse con samba


11

Tengo un proveedor de dominio que proporciona acceso a través de SSH.

Mis plataformas son:

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

Trabajo en mi Windows, uso Gentoo para hacer todo lo que Windows no puede hacer.

Por lo tanto, uso sshfs para montar el directorio público remoto de mi dominio en /mnt/mydomain.com. La autenticación se realiza mediante claves, por lo que no tengo que escribir mi contraseña de vez en cuando.

Ya que hago mi codificación en Windows, y no quiero cargar / descargar los archivos modificados todo el tiempo, quiero acceder a este /mnt/mydomain.com a través de un recurso compartido de samba.

Así que compartí / mnt en samba, todos los montajes excepto midominio.com están listados en mi Explorador de Windows.

Mis teorías son:

  1. sshfs no establece el uid / gid de mountpoint en algo que samba espera
  2. samba No sabe que tiene que incluir el uid / gid que /mnt/mydomain.com ha sido establecido.
  3. Todo lo anterior está mal, y no lo sé.

Aquí están las configuraciones y la salida de la consola, necesito algo más, házmelo saber. Tampoco hay errores o advertencias de los que tenga en cuenta que sean relevantes para este problema, pero podría estar equivocado.

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

Para una lectura más fácil:

  • myusername@mywebhotel.com
  • / home / to / pub / dir /
  • /mnt/mydomain.com/

opciones:

  • comment = sshfs
  • noauto
  • usuarios
  • exec
  • uid = 0
  • gid = 0
  • permitir a otros
  • reconectarse
  • seguir_symlinks
  • transform_symlinks
  • idmap = ninguno
  • SSHOPT = HostBasedAuthentication

¡Ayuda!


IIRC, HostbasedAuthentication no se recomienda utilizar (el usuario basado en PubkeyAuthentication se prefiere)
grawity

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

Respuestas:


9

sshfs es un sistema de archivos basado en FUSE, y la capa FUSE no permite a otros usuarios acceder a sus montajes de forma predeterminada, por razones de seguridad. Tienes allow_other en opciones, pero se ignorará hasta que también edites /etc/fuse.conf para incluir user_allow_other.


Al ejecutar "ps aux", la columna izquierda indica la raíz para los procesos sshfs y smbd. Yo "analizo" esto ya que ambos se ejecutan con los mismos privilegios. Desde la salida de ls -lah, ves que el uid no es root, este uid está configurado por sshfs, pero no puedo configurarlo, al menos no con el cambio de uid / gid en las opciones. Creo que samba de alguna manera creo que tiene que excluir ese directorio específico con uid / gid 68591. (Intentando aclarar algo de confusión de mi parte).
CS01

@ CS01: el smbd "maestro" se ejecuta como root, pero eso no es cierto para los controladores de conexión; si inicia sesión en SMB como "jim", su proceso smbd también cambia al UID de "jim".
grawity

También debe asignar el UID y / o GID a los usuarios deseados a través de las opciones uid = & lt; UID & gt;, gid = & lt; GID & gt ;.
sweisgerber.dev

2

¿Por qué no monta sshfs directamente desde Windows?
Hay un par de soluciones gratuitas para eso (ver aquí y aquí para más información).


1
Wow, esta herramienta es genial!
CS01

No parecen muy prometedores y están suspendidos, al menos ahora, después de 3 años :) ¿Tiene alguna experiencia de estabilidad con ellos?
sweisgerber.dev

0

Como sus recursos compartidos normales de smb están funcionando, no pierdo una palabra con respecto a la configuración de Samba, porque puede guardar los montajes sshfs exactamente como comparte carpetas normales. Pero montar el recurso compartido SSH a través de sshfs es especial en comparación con el acceso a la máquina local solamente.

Para montar su recurso compartido a través de fstab, puede poner esta línea en / etc / fstab y montar el recurso compartido a petición. Es más conveniente que c & amp; p el comando de la línea de comandos.

Línea genérica de 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 necesitas montarlo via mount /MOUNT/POINT todas las demás informaciones se obtienen de esta línea en / etc / fstab

usuarios: permite a los usuarios normales montar esta entrada de montaje

reconectar vuelve a conectar / vuelve a montar el ahre después de la espera, etc.

uid = / gid =: Asigna el uid / gid remoto a este uid / gid local

Ejemplo:

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

Todo lo que necesitas saber sobre el montaje sshfs El https://wiki.archlinux.org/index.php/Sshfs]

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.