Lien symbolique et filezilla sur sftp

Je suis assez nouveau pour debian, et j'essaie de configurer un server.

J'ai créé un user qui ne peut accéder qu'à son dossier /home/username (et son sous-directory).

Maintenant, je souhaite utiliser cet user pour le server web que j'ai configuré, et je lui ai donné access à /var/www mais je ne peux pas voir /var/www via sftp et j'ai fait un lien symbolique comme ceci:

 root@server:/home/username# ln -s /var/www www root@server:/home/username# cd www root@server:/home/username/www# chown username:username * 

Maintenant, avec filezilla, je peux voir www folder comme ceci:

Filezilla

Mais lorsque j'essaie de l'ouvrir, j'obtiens ceci:

Ouvrir

Qu'est-ce que je fais mal?

Il est probable que le SFTP soit chrooté, de sorte que le directory / var / www ne soit pas disponible pour l'user dans la prison de chroot.

Regardez dans /etc/ssh/sshd_config et examinez les directives sftp. Voyez-vous quelque chose comme:

 Match group sftp ChrootDirectory /home/%u AllowTcpForwarding no ForceCommand internal-sftp 

La page man sshd_config est ici .

Fondamentalement, une fois que l'user est dans /home/username dans SFTP, ce directory devient / et les references hors de /home/username ne sont pas disponibles. En fait, un lien symbolique comme ln -s /var/www /home/username/www ressemblera à ce que vous essayez d'atteindre /home/username/var/www (c.-à-d. /home/username est maintenant / donc tout lien qui les references /var/www doivent également être un sous-directory de /home/username dans le context du chroot).

En tant que solution, vous pouvez désactiver le chroot (mais cela aura d'autres implications sur la security, surtout si les users de SFTP ont un contrôle total sur votre système de files). Vous pouvez faire un assembly en boucle de / var / www dans / home / username / www (quelque chose comme mount --bind /var/www /home/username/www (vérifiez votre documentation pour mount ) qui devrait fonctionner comme vous vous attendez sous chroot). Vous pouvez également utiliser le file sshd_config pour exclure un user particulier du chroot (bien sûr, avec des implications de security).

J'essayerais d'abord de monter le lien.

J'ai résolu de déconnecter le lien symbolique que j'ai créé et avec

 root@server:/home/username# mkdir www root@server:/home/username# mount --bind /home/username/www /var/www 

(même si j'ai perdu tout était dans / var / www, mais je m'en fous)

Merci a tous!