Dans mon Ubuntu 14.04, j'ai installé le serveur ftp ( FTPD ). Je voudrais créer un utilisateur pour cela et définir nologin à cet utilisateur. Lorsque vous vous connectez à l'aide d'un client FTP, je souhaite que cet utilisateur puisse afficher l'intégralité du répertoire système.
Comment puis-je limiter un utilisateur de ce type à un seul répertoire (E.g. /usr/local/example
)?
Pour vsftpd
name__, la configuration est extrêmement simple:
Sudo apt-get install vsftpd
puis:
Sudo nano /etc/vsftpd.conf
assurez-vous que les paramètres suivants sont correctement définis:
# Depending on the version you're running, you might want to set the following
# parameter to YES
# (if affected by https://bugs.launchpad.net/ubuntu/+source/vsftpd/+bug/1313450)
listen=YES
# to allow local users to log on:
local_enable=YES
#if you want write access too:
write_enable=YES
# Set anonymous user directory to /srv/ftp (no default)
anon_root=/srv/ftp
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
# following for debugging purposes (to ensure you're on the right server)
ftpd_banner=Welcome to Aravind's FTP service.
# Now restrict users to their home directories:
chroot_local_user=YES
allow_writeable_chroot=YES
Et maintenant, si vous voulez définir un utilisateur particulier dans un répertoire particulier, créez simplement un utilisateur avec un répertoire particulier:
Sudo adduser ftpuser --home /usr/local/example
à tester:
Accédez à un terminal sur la machine exécutant vsftpd
et tapez: ftp 127.0.0.1
. Si vous êtes accueilli par votre propre bannière, vsftpd
fonctionne!
Puis testez sur la même machine à son adresse publique: ftp 1.2.3.4
et enfin à partir d’une machine distante à l’adresse publique. En cas de problème avec les adresses publiques, vérifiez les paramètres de votre pare-feu.
Notes complémentaires:
Si vous ne souhaitez pas que l'utilisateur se connecte, ajoutez le paramètre --Shell /bin/false
à la commande adduser
name__.
Vous pouvez également vouloir supprimer tous les répertoires/fichiers (Desktop
name__, Pictures
name__, ... que le adduser
a créé si vous ne les voulez pas ...
Avez-vous une raison d'utiliser ce logiciel de serveur FTP spécifique? Ce que vous cherchez est principalement appelé "chroot" ( ch ange la racine répertoire par utilisateur) ou quelque chose de similaire. Selon ce rapport de bogue , le serveur ftkit netkit, contenu dans le paquet linux-ftpd
, n'offre pas cette fonctionnalité. Event the page du tableau de bord dit
Ceci est le serveur ftp netkit. Il est recommandé d'utiliser l'une de ses alternatives, telle que wu-ftpd ou proftpd.
Je sais par expérience que pure-ftpd (paramètre VIRTUALCHROOT
) et ProFTPd (by hôtes virtuels ) offrent la fonctionnalité que vous recherchez. Les deux sont disponibles à partir des référentiels Ubuntu standard. Un autre logiciel de serveur ftp offre probablement des fonctionnalités similaires.