Montare un file system remoto utilizzando SSHFS [chiuso]
Domanda
Ok, la configurazione è un po' contorta.Non incolpare me, non sono l'amministratore di sistema.
Ecco la situazione.C'è una macchina su cui posso accedere tramite SSH dall'esterno della rete.Posso accedere in remoto solo come root (sì, hai sentito bene) usando la mia chiave privata.So che è più tipico accedere come utente e quindi elevare i privilegi, ma in questo caso devo fare il contrario.
Il problema è che voglio utilizzare SSHFS per montare il file system da remoto.Funziona perfettamente.Tuttavia, non voglio che ogni file con cui mi occupo rifletta i permessi di root.Vorrei prima de-elevare (su a un account utente).
Qualcuno sa come posso farlo con SSHFS?
Soluzione
È possibile creare uno script per intercettare la chiamata al sottosistema sftp sul computer remoto.Inserisci il seguente script da qualche parte sul server remoto, diciamo /root/bin/sftp_intercept:
#!/bin/sh
exec sudo -u less_privileged_user /usr/lib/openssh/sftp-server
e poi effettua la chiamata in questo modo:
sshfs root@remote:dir mountpoint -o sftp_server=/root/bin/sftp_intercept
Ciò dovrebbe quindi dare i risultati desiderati.
Avrai bisogno di una voce sudoers appropriata per far funzionare sudo senza che venga richiesta una password e non dimenticare di "chmod 755 ~/bin/sftp_intercept".
Inoltre, assicurati che /usr/lib/openssh/sftp-server sia effettivamente il percorso del server sftp.In caso contrario, forse è /usr/lib/sftp-server.
Altri suggerimenti
Lo sshfs manpage suggerisce che passa
-o uid=$YOURUID -o gid=$YOURGID
per il vostro sshfs invocazione deve impostare l'utente / gruppo dei file creati a che uid / gid. Avrete bisogno di trovare questi sul sistema remoto, ovviamente.