web-dev-qa-db-fra.com

Comment afficher uniquement un répertoire spécifique à un utilisateur FTP

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)?

7
Aravinth

Pour vsftpdname__, 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 vsftpdet tapez: ftp 127.0.0.1. Si vous êtes accueilli par votre propre bannière, vsftpdfonctionne!

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 addusername__.

Vous pouvez également vouloir supprimer tous les répertoires/fichiers (Desktopname__, Picturesname__, ... que le addusera créé si vous ne les voulez pas ...

Terminé!

7
Fabby

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.

1