Pergunta

Ok, a configuração é um pouco complicada. Não me culpe, eu não sou o administrador do sistema.

Aqui está a situação. Há uma máquina que eu posso SSH em de fora da rede. Eu só posso remoto como root (sim, você ouviu direito) usando a minha chave privada. Eu sei que é mais típico para entrar como um usuário e, em seguida, privilégios elevar-se, mas, neste caso, eu tenho que fazer o oposto.

O problema é que eu quero usar SSHFS, a fim de montar o sistema de arquivos remotamente. Eu tenho esta funcionando perfeitamente. No entanto, eu não quero todos os arquivos que eu mexer com a refletir permissões de root. Gostaria de-elevar primeiro (su para uma conta de usuário).

Alguém sabe como posso fazer isso com SSHFS?

Foi útil?

Solução

Você pode criar um script para interceptar a chamada para o subsistema sftp na máquina remota. Coloque o seguinte em algum script no servidor remoto, digamos / root / bin / sftp_intercept:

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

e, em seguida, fazer a chamada assim:

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

Isso deve, em seguida, dar os resultados desejados.

Você vai precisar de uma entrada sudoers apropriate para tornar o trabalho sudo sem ele solicitar uma senha, e não se esqueça de "chmod 755 ~ / bin / sftp_intercept".

Além disso, certifique-se de que / usr / lib / openssh / sftp-servidor é realmente o caminho para o sftp-servidor. Se não, então talvez seja / usr / lib / sftp-servidor.

Outras dicas

O sshfs manpage sugere que passar

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

para o seu sshfs invocação deve definir o utilizador / grupo dos arquivos que você cria para que uid / gid. Você precisa encontrá-los no sistema remoto, obviamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top