Je suis confus à propos de cette configuration que j'essaie de déployer. J'espère que quelqu'un parmi vous pourra me donner un coup de main: très apprécié.
Informations de fond
Le serveur est Debian 6.0, ext3, avec Apache2 / SSL et Nginx à l'avant comme proxy inverse. Je dois fournir un accès sftp au répertoire racine Apache (/ var / www), en m'assurant que l'utilisateur sftp est chrooté sur ce chemin avec des autorisations RWX.
Tout cela sans modifier aucune autorisation par défaut dans / var / www.
drwxr-xr-x 9 root root 4096 Nov 4 22:46 www
À l'intérieur / var / www
-rw-r----- 1 www-data www-data 177 Mar 11 2012 file1
drwxr-x--- 6 www-data www-data 4096 Sep 10 2012 dir1
drwxr-xr-x 7 www-data www-data 4096 Sep 28 2012 dir2
-rw------- 1 root root 19 Apr 6 2012 file2
-rw------- 1 root root 3548528 Sep 28 2012 file3
drwxr-x--- 6 www-data www-data 4096 Aug 22 00:11 dir3
drwxr-x--- 5 www-data www-data 4096 Jul 15 2012 dir4
drwxr-x--- 2 www-data www-data 536576 Nov 24 2012 dir5
drwxr-x--- 2 www-data www-data 4096 Nov 5 00:00 dir6
drwxr-x--- 2 www-data www-data 4096 Nov 4 13:24 dir7
Ce que j'ai essayé
- a créé un nouveau groupe secureftp
- a créé un nouvel utilisateur sftp, joint aux groupes secureftp et www-data également avec nologin shell. Homedir est /
- sshd_config modifié avec
Subsystem sftp internal-sftp AllowTcpForwarding no Match Group <secureftp> ChrootDirectory /var/www ForceCommand internal-sftp
Je peux me connecter avec l'utilisateur sftp, lister les fichiers mais aucune action d'écriture n'est autorisée. L'utilisateur Sftp est dans le groupe www-data mais les autorisations dans / var / www sont lues / lues + x pour le bit de groupe donc ... Cela ne fonctionne pas.
J'ai également essayé avec ACL, mais comme j'applique des autorisations ACL RWX pour l'utilisateur sftp à / var / www (répertoires et fichiers de manière récursive), cela modifiera également les autorisations unix, ce que je ne veux pas.
Que puis-je faire ici?
Je pensais que je pouvais permettre à l'utilisateur www-data de se connecter en tant que sftp, afin qu'il puisse modifier les fichiers / répertoires que www-data possède dans / var / www. Mais pour une raison quelconque, je pense que ce serait une décision stupide en matière de sécurité.
la source
Réponses:
Ce que j'ai fait, c'est chrooter mes utilisateurs dans leurs répertoires personnels, puis
mount --bind
créer un lien vers celui-ci dans leurs répertoires personnels.J'ai ensuite utilisé
setfacl
pour m'assurer que leswww-data
autorisations d'écriture de maintans sur les nouveaux fichiers dans le répertoire. Cet effet va se reproduire/var/www
, c'est ce que vous voulez faire.En définissant
g+s
le répertoire, tous les nouveaux fichiers et répertoires créés dans celui-ci hériteront de la propriété du groupe de son parent.Cela devrait faire l'affaire.
Rendez vos montures persistantes
De toute évidence, vous voulez que vos montures soient toujours là lorsque vous redémarrez le serveur. C'est aussi simple que d'ajouter les supports à votre
/etc/fstab
. Tous les fournisseurs ne vous permettent pas de toucher ce fichier, mais la plupart le font.Ajoutez simplement des lignes comme celle-ci:
Vous voudrez peut-être redémarrer pour vous assurer que cela fonctionne.
la source