web-dev-qa-db-fra.com

Créer un nouvel utilisateur vsftpd et verrouiller (spécifier) ​​le répertoire home / login

J'ai besoin de donner périodiquement un accès temporaire et limité à divers répertoires sur un serveur Linux CentOS sur lequel vsftp est installé.

J'ai créé un utilisateur à l'aide de useradd [user_name] et leur a donné un mot de passe en utilisant passwd [password].

J'ai créé un répertoire dans /var/ftp puis je le lie au répertoire auquel je souhaite limiter l'accès.

Que dois-je faire d'autre spécifiquement pour m'assurer que lorsque cet utilisateur se connecte au FTP, il n'a accès qu'à ce répertoire s'il vous plaît?

33
zigojacko

Réponse complète qui a résolu ma question pour toutes les autres qui recherchent une procédure pas à pas ...

Installez vsftpd en utilisant ceci comme guide .

  • Créer un utilisateur avec useradd [user_name].
  • Créez le mot de passe de l'utilisateur avec passwd [user_name]. (Vous serez invité à spécifier le mot de passe).
  • Créer un répertoire FTP dans /var/ftp puis liez au répertoire 'home' que vous souhaitez spécifier pour cet utilisateur avec mount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/.
  • Modifiez le répertoire personnel de l'utilisateur avec usermod -d /var/ftp/custom_name/ user_name

    Dans /etc/vsftpd/vsftpd.conf, assurez-vous que tous les éléments suivants sont définis: -

    • chroot_local_user = OUI
    • chroot_list_enable = OUI
    • chroot_list_file =/etc/vsftpd.chroot_list

Répertorier uniquement les utilisateurs dans le vsftpd.chroot_list fichier si vous voulez qu'ils aient un accès complet à n'importe où sur le serveur. En ne les répertoriant pas dans ce fichier, vous dites restreindre tous les utilisateurs vsftpd à leur répertoire personnel spécifié.

En d'autres termes (pour référence): -

  1. signifie que par défaut, TOUS les utilisateurs sont chrootés sauf les utilisateurs du fichier ...
    • chroot_local_user = OUI
    • chroot_list_enable = OUI
  2. signifie que par défaut, seuls les utilisateurs du fichier sont chrootés ...
    • chroot_local_user = NO
    • chroot_list_enable = OUI
48
zigojacko

Pour moi, cela n'a pas fonctionné même après ce qui précède. Il y avait un local_root déjà défini dans un répertoire, et quoi que je fasse, le répertoire de l'utilisateur n'a pas été emprisonné. Enfin, il est travaillé après seulement changé

chroot_local_user = OUI

Et suivant la procédure

  1. vi /etc/vsftpd.conf
  2. Ajoutez la ligne 'user_config_dir =/etc/vsftpd_user_conf' (sans guillemets)
  3. mkdir/etc/vsftpd_user_conf;
  4. cd/etc/vsftpd_user_conf
  5. vi nom_utilisateur;
  6. Entrez la ligne 'racine_locale =/srv/ftp/nom_utilisateur'

Juste mes deux cents si quelqu'un d'autre avait le même problème.

10
gnaanaa