J'ai créé l'utilisateur MY_USER. Définissez son répertoire personnel sur / var / www / RESTRICTED_DIR, qui est le chemin auquel il devrait être restreint. Ensuite, j'ai édité sshd_config et défini:
Match user MY_USER
ChrootDirectory /var/www/RESTRICTED_DIR
Puis j'ai redémarré ssh. Fait de MY_USER propriétaire (et propriétaire du groupe) de RESTRICTED_DIR et l'a modifié à 755. Je reçois
Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER
Si j'ai supprimé les 2 lignes de sshd_config, l'utilisateur peut se connecter avec succès. Bien sûr, il peut accéder à tout le serveur cependant. Quel est le problème? J'ai même essayé de chown RESTRICTED_DIR à la racine (car je lis quelque part que quelqu'un a résolu le même problème en le faisant). Pas de chance..
/
,/var
,/var/www
et/var/www/RESTRICTED_DIR
doivent tous sont conformes aux exigences de sécurité ci - dessus). Il s’agit d’un véritable chroot (consultez la page de manuel). Le répertoire de base de votre utilisateur doit exister dans le chroot , de même que/bin
toutes les autres fonctions dont votre utilisateur aura besoin ...sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
/var/www
directement les permissions du chemin, ce qui pourrait endommager Apache, il serait préférable de placer votre répertoire sftp dans un autre chemin, puis d'utiliser le mappage d'URL dans Apache pour pointer vers l'autre répertoire. . Consultez la documentation ici httpd.apache.org/docs/2.4/urlmapping.html sousFiles Outside DocumentRoot
Le répertoire ChrootDirectory doit appartenir à root et avoir le mode 755:
Ok, maintenant tous les fichiers
/var/www/RESTRICTED_DIR
doivent appartenir àMY_USER
, qui doivent appartenir à unwww-data
groupe et avoir le mode 775 pour autoriser les autorisations de groupe, comme ceci:REMARQUE: n'oubliez pas qu'il est recommandé d'autoriser l'accès uniquement à un dossier htdocs si vous configurez apache.
la source
sudo usermod -a -G www-data MY_USER
comme le groupe devrait venir après-G
Après un certain dépannage aujourd'hui, j'ai compris que root devait également être capable d' écrire dans les répertoires.
Ce qui suit n'a pas fonctionné:
Dès que j'ai résolu ce problème, mon chroot a commencé à fonctionner.
la source