Montar um sistema de arquivos remoto usando SSHFS [fechado]
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?
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.