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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top