Question

Ok, la configuration est un peu alambiquée. Ne me blâmez pas, je ne suis pas le sysadmin.

Voici la situation. Il y a une machine que je peux SSH en dehors du réseau. Je ne peux à distance en tant que root (oui, vous avez bien entendu) en utilisant ma clé privée. Je sais qu'il est plus typique de se connecter en tant qu'utilisateur, puis élever les privilèges, mais dans ce cas, je dois faire le contraire.

Le problème est que je veux utiliser SSHFS pour monter à distance le système de fichiers. J'ai ce travail parfaitement. Cependant, je ne veux pas tous les fichiers que je Muck avec pour refléter les permissions root. Je voudrais de-élever d'abord (su à un compte utilisateur).

Quelqu'un sait comment je peux le faire avec SSHFS?

Était-ce utile?

La solution

Vous pouvez créer un script pour intercepter l'appel au sous-système sftp sur la machine distante. Mettez le script suivant quelque part sur le serveur distant, supposons que / root / bin / sftp_intercept:

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

et ensuite faire l'appel comme ceci:

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

Cela devrait alors donner les résultats souhaités.

Vous aurez besoin d'une entrée apropriate sudoers pour faire fonctionner sudo sans lui demandant un mot de passe, et ne pas oublier de « chmod 755 ~ / bin / sftp_intercept ».

En outre, assurez-vous que / usr / lib / openssh / sftp-server est en effet le chemin du sftp-server. Sinon, alors peut-être il est / usr / lib / sftp-server.

Autres conseils

Le sshfs manpage suggère que le passage

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

à votre appel de sshfs doit définir l'utilisateur / groupe des fichiers que vous créez à ce uid / gid. Vous aurez besoin de trouver sur le système distant, évidemment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top