Pregunta

Ok, la configuración es un poco complicado. No es mi culpa, yo no soy el administrador de sistemas.

Esta es la situación. Hay una máquina que puedo SSH en la red desde fuera. Sólo puedo remoto como root (sí, has oído bien) usando mi clave privada. Yo sé que es más típico de iniciar la sesión como un usuario y luego elevar los privilegios, pero en este caso, tengo que hacer lo contrario.

El problema es que quiero utilizar SSHFS con el fin de montar el sistema de archivos de forma remota. Tengo esta funcionando perfectamente. Sin embargo, no quiero que todos los archivos que me Muck para reflejar con permisos de root. Me gustaría de-elevar primero (su para una cuenta de usuario).

Alguien sabe cómo puedo hacer esto con SSHFS?

¿Fue útil?

Solución

Puede crear una secuencia de comandos para interceptar la llamada al subsistema SFTP en la máquina remota. Ponga el siguiente script en alguna parte en el servidor remoto, digamos / root / bin / sftp_intercept:

#!/bin/sh
exec sudo -u less_privileged_user /usr/lib/openssh/sftp-server

y luego hacer la llamada de esta manera:

sshfs root@remote:dir mountpoint -o sftp_server=/root/bin/sftp_intercept

Esto debería entonces dar los resultados deseados.

Usted necesitará una entrada sudoers adecuada exploración para hacer el trabajo sudo sin que se pida la contraseña, y no se olvide de "chmod 755 ~ / bin / sftp_intercept".

Además, asegúrese de que / usr / lib / openssh / sftp-server es de hecho la ruta de acceso al servidor SFTP-. Si no es así, entonces quizás es / usr / lib / sftp-servidor.

Otros consejos

La página de manual sshfs sugiere que pasa

-o uid=$YOURUID -o gid=$YOURGID

a su invocación sshfs debe establecer el usuario / grupo de los archivos que se crean para que UID / GID. Tendrá que encontrar estos en el sistema remoto, obviamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top