J'essaie de configurer sftp afin que quelques personnes de confiance puissent accéder/modifier/créer des fichiers. J'ai emprisonné un utilisateur dans son répertoire personnel (/ home/name) mais j'ai rencontré un problème. Je veux qu'ils puissent également accéder à d'autres parties du VPS car c'est également un serveur de jeu, un hébergeur, etc., et je veux qu'ils puissent avoir le contrôle total des fichiers en dehors de leur répertoire emprisonné.
J'ai essayé de créer un lien symbolique (ln -s) vers le répertoire souhaité mais cela ne fonctionne pas, comme prévu. J'ai essayé (cp -rl) les fichiers auxquels je voulais donner accès et cela a fonctionné - ils peuvent éditer les fichiers dans leur répertoire et cela change celui stocké en dehors de la prison. MAIS ils ne peuvent pas créer de nouveaux fichiers (ils le peuvent mais ils ne seront pas mis à jour en dehors de la prison). Je sais que je ne fais probablement pas cela de la "bonne façon" mais que puis-je faire pour faire ce que je veux?
Les liens symboliques sont purement symboliques: ils ne contiennent rien d'autre qu'un chemin, donc lorsque vous ouvrez un lien symbolique, le système d'exploitation lit le chemin et l'utilise à la place. Dans un environnement chroot, les liens (en particulier ceux avec des chemins absolus) ne pointent généralement pas au même endroit qu'ils ont indiqué dans l'environnement normal.
Si le système d'exploitation du serveur est Linux, votre meilleur pari est de lier-monter le répertoire entier quelque part dans le répertoire chroot. Lorsque vous utilisez ceci, il est important de se rappeler qu'il ne s'agit pas d'une copie du répertoire, tout ce qui est supprimé ici sera supprimé de l'autre répertoire (important si l'utilisateur peut mv
fichiers ou rm -rf
). Pour faire ça:
mount --bind /some/directory /somewhere/else
Les fichiers du répertoire doivent être de vrais fichiers. Les liens symboliques ici auront probablement les mêmes problèmes que ceux que vous essayez de lier aux fichiers en premier lieu.