So zeigen Sie dem FTP-Benutzer nur ein bestimmtes Verzeichnis an

9

In meinem Ubuntu 14.04 habe ich den FTP-Server ( FTPD ) installiert . Ich möchte einen Benutzer dafür erstellen und nologin auf diesen Benutzer setzen. Wenn Sie sich mit einem FTP-Client anmelden, möchte ich, dass dieser bestimmte Benutzer das gesamte Systemverzeichnis sehen kann.

Wie beschränke ich einen solchen Benutzer auf ein Verzeichnis (zB /usr/local/example)?

Aravinth
quelle

Antworten:

8

Denn vsftpddie Konfiguration ist außerordentlich einfach:

sudo apt-get install vsftpd

dann:

sudo nano /etc/vsftpd.conf

Stellen Sie sicher, dass die folgenden Parameter richtig eingestellt sind:

# 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

Wenn Sie nun einen bestimmten Benutzer auf ein bestimmtes Verzeichnis festlegen möchten, erstellen Sie einfach einen Benutzer mit einem bestimmten Verzeichnis:

sudo adduser ftpuser --home /usr/local/example

Zu testen:

Gehen Sie zu einem Terminal auf dem laufenden Computer vsftpdund geben Sie Folgendes ein: ftp 127.0.0.1Wenn Sie von Ihrem eigenen Banner begrüßt werden, vsftpdfunktioniert dies!

Testen Sie dann auf demselben Computer die öffentliche Adresse: ftp 1.2.3.4und schließlich von einem Remotecomputer die öffentliche Adresse. Wenn bei den öffentlichen Adressen ein Fehler auftritt, überprüfen Sie Ihre Firewall-Einstellungen.

Zusätzliche Bemerkungen:

Wenn Sie nicht möchten, dass sich der Benutzer anmeldet, fügen Sie den --shell /bin/falseParameter dem adduserBefehl hinzu.

Vielleicht möchten Sie auch alle Verzeichnisse / Dateien (löschen Desktop, Pictures... dass die addusererstellt , wenn Sie wollen , dass sie nicht da ...

Erledigt!

Fabby
quelle
1
Auch danach kann ich das Home-Verzeichnis anderer Benutzer und den gesamten Inhalt darin anzeigen :(
Dave Ranjan
@ DaveRanjan: Versuchen Sie es erneut ... c Ich habe meine Antwort durchgesehen und kann keine Löcher finden oder eine neue Frage stellen. Beziehen Sie sich auf diese und posten Sie alle Fehler, auf die Sie unterwegs gestoßen sind.
Fabby
1

Gibt es einen Grund, warum Sie diese spezielle FTP-Serversoftware verwenden müssen? Was Sie suchen ist meist „chroot“ (genannt ch ange das Wurzelverzeichnis pro Benutzer) oder etwas ähnliches. Laut diesem Fehlerbericht bietet der im linux-ftpdPaket enthaltene Netkit-FTP-Server diese Funktion nicht an. Ereignis, das auf der Launchpad-Seite steht

Dies ist der Netkit-FTP-Server. Es wird empfohlen, eine der Alternativen zu verwenden, z. B. wu-ftpd oder proftpd.

Ich weiß aus Erfahrung, dass pure-ftpd (Einstellung VIRTUALCHROOT) und ProFTPd (von virtuellen Hosts ) die Funktion bieten, nach der Sie suchen. Beide sind in den Standard-Ubuntu-Repositorys verfügbar. Andere FTP-Server-Software bietet wahrscheinlich ähnliche Funktionen.

Henning Kockerbeck
quelle