Vous êtes sur la page 1sur 3

Comment configurer le serveur FTP sur Ubuntu 16.

04
avec des utilisateurs virtuels
the7bits.com/blog/how-to-setup-ftp-server-on-ubuntu-16-04-with-virtual-users

Parfois, vous devez configurer un FTP pour votre projet. Dans cet article, je vais vous
montrer comment configurer FTP sur votre serveur Ubuntu. Tout d'abord, installez
vsftpd et PAM:

$ sudo apt-get update


$ sudo apt-get install vsftpd libpam-pwdfile

Enregistrez l'ancien fichier de configuration. Maintenant, nous pouvons travailler avec


une configuration vierge.

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Ouvrez la configuration et remplacez le contenu du fichier par ce qui suit:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
user_config_dir=/etc/vsftpd/vsftpd-virtual-user/
virtual_use_local_privs=YES
dual_log_enable=YES
connect_from_port_20=YES
listen=YES
pam_service_name=ftp
tcp_wrappers=YES
allow_writeable_chroot=YES

Redémarrez le service vsftpd:

$ sudo service vsftpd restart

Créez ensuite un nouveau répertoire pour le fichier avec les utilisateurs virtuels:

$ sudo mkdir -p /etc/vsftpd/vsftpd-virtual-user/

Et créez un fichier vierge où nous ajouterons des utilisateurs avec des mots de passe un
peu plus tard:

$ sudo touch /etc/vsftpd/vsftpd-virtual-user/vsftpd_user

Copiez encore un autre fichier de configuration:

$ sudo cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

Et remplacez son contenu par le suivant:

1/3
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account include system-auth
session include system-auth
session required pam_loginuid.so

Nous pouvons maintenant créer un nouvel utilisateur système. L'utilisateur aura son
propre répertoire personnel séparé mais ne permettra pas de se connecter via ssh.
Remplacez USERNAME par quelque chose que vous voulez, comme ftp-myproject par
exemple.

$ sudo useradd --home /home/USERNAME --gid nogroup -m --shell /bin/false USERNAME

Ensuite, configurez un mot de passe pour l'utilisateur nouvellement créé:

$ echo USERNAME:PASSWORD|sudo chpasswd

Maintenant, nous devons ajouter le nom du nouvel utilisateur au vsftpd_user fichier:

$ sudo nano /etc/vsftpd/vsftpd-virtual-user/vsftpd_user

Ajoutez simplement le nom de l'utilisateur à ce fichier sur une ligne distincte.

Créez le fichier séparé pour notre utilisateur dans le répertoire /etc/vsftpd/vsftpd-virtual-


user

$ sudo nano /etc/vsftpd/vsftpd-virtual-user/USERNAME

Et mettez le contenu suivant à l'intérieur:

local_root=/home/USERNAME
cmds_allowed=USER,PASS,SYST,FEAT,OPTS,PWD,TYPE,PASV,LIST,STOR,CWD,MKD,SIZE,MDTM,CDUP,RETR,RNFR,RNT

local_umask=022
write_enable=YES

Si vous souhaitez autoriser la suppression de fichiers à votre nouvel utilisateur, ajoutez


simplement DELE à l'argument cmds_allowed .

C'est tout. Vous pouvez maintenant utiliser votre client FTP pour vous connecter avec
l'utilisateur et le mot de passe correspondants. La racine de votre FTP est
/home/USERNAME . Vous pouvez également utiliser la mount commande pour partager
n'importe quel répertoire avec votre racine FTP. Comme ça:

$ sudo mkdir -p /home/USERNAME/DESTINATION


$ sudo mount --bind SOURCE /home/USERNAME/DESTINATION

2/3
Fenêtre Filezilla avec le FTP ouvert

3/3

Vous aimerez peut-être aussi