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?
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 .
useradd [user_name]
.passwd [user_name]
. (Vous serez invité à spécifier le mot de passe)./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: -
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): -
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
- vi /etc/vsftpd.conf
- Ajoutez la ligne 'user_config_dir =/etc/vsftpd_user_conf' (sans guillemets)
- mkdir/etc/vsftpd_user_conf;
- cd/etc/vsftpd_user_conf
- vi nom_utilisateur;
- Entrez la ligne 'racine_locale =/srv/ftp/nom_utilisateur'
Juste mes deux cents si quelqu'un d'autre avait le même problème.