PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vsftpd Konfiguration



harald76
04.08.08, 15:37
Hallo,

zuerst ich bin neu hier und dachte, dass ich mit meinem Problem hier gut aufgehoben bin :) Ich habe auf meinem Redhat Linux einen vsftpd laufen. Funzt soweit auch alles gut nur möchte ich es jetzt so haben, dass ein user der lokal vorhanden ist und sich anmeldet in ein bestimmtes Verzeichnis geleitet wird.

Ich dem User eine Shell ohne Login zugewiesen:


usermod -s /sbin/nologin user

Dann in der /etc/vsftpd/vsftpd.conf folgendes eingestellt:

# Anonymen FTP-Zugriff erlauben? YES/NO
anonymous_enable=NO
# Anmeldung von lokalen Usern erlauben? YES/NO
local_enable=YES
# Schreibrechte prinzipiell erlauben? YES/NO
write_enable=YES
userlist_deny=NO
userlist_enable=YES
# User in "vsftpd.chroot" koennen nur im Home Verzeichnis agieren
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot

In der Datei "/etc/vsftpd.user_list" steht der User "user"(Beispielname).

Sowie unter "/etc/vsftpd.chroot" ist er eingetragen (Der User "user").

Alle anderen User können sich frei bewegen nur dieser nicht. So will ich das ganze auch. Nur leider will ich nicht das er nach dem Login im Homeverzeichnis ist sondern in dem Verzeichnis "/meins/user". Und nur dort in diesem Verzeichnis soll der User sich bewegen können. Ist es eigentlich auch möglich für den User den Befehl "get" zu sperren?

MfG
Harald

ProfBunny
04.08.08, 16:41
hi,

würde sagen

local_root
This option represents a directory which vsftpd will try to change into after a local (i.e. non-anonymous) login. Failure is silently ignored.


hth

harald76
05.08.08, 09:11
Danke für die Antwort,
das ganze funktioniert zwar, aber nun kommen alle User die sich anmelden in das Verzeichnis "/meins/user". In der /etc/vsftpd/vsftpd.conf habe ich eingetragen:

local_root=/meins/user

Kann man das nicht irgendwie so einstellen, dass es nur für einen user gilt?

MfG
Harald

marce
05.08.08, 09:14
was spricht dagegen, dem User das gewünschte Verzeichnis als ~/ zuzuordnen?

harald76
05.08.08, 10:06
Hallo marce,
ich bin leider noch nicht so erfahren bei Linux. Kannst du mir das bitte genauer erklären?

Edit:
Ich habe noch etwas anderes gefunden:
Mit "user_config_dir=/tmp/ftp" in der "/etc/vsftpd/vsftpd.conf" kann ich für jeden User eigene Restriktionen angeben.
Unter "/tmp/ftp" gibt es nun die datei "user" mit dem Inhalt:

local_root=/meins/user

Das funktioniert auch. Nur leider muss ich jetzt für jeden anderen User so eine Config Datei anlegen und das wollte ich eigentlich nicht machen.

MfG
Harald

marce
05.08.08, 10:09
Was soll man doch noch erklären? Dem User als Home-Verzeichnis das gewünschte ftp-Verzeichnis zuordnen?

harald76
05.08.08, 10:37
Okay, jetz habe ich das verstanden.
Aber sind dann nicht die

.bash_history
.bash_logout
.bash_profile
.bashrc
.emacs
.gtkrc
...
Dateien in diesem Verzeichnis? Das wollte ich nämlich nicht.

Gruß

marce
05.08.08, 10:51
je nach dem, wie Du den User anlegst oder konfigurierst...

harald76
05.08.08, 11:36
Also ich habe mir die manual für user mod angeschaut. Laut der Manual ist es die Option -d.
Ich müsste also "usermod -d /meins/user user" ausführen. Das Kommando klappt auch. Nur verschiebt er
mir die Dateien vom alten Home-Verzeichnis mit. Laut der Manual geschieht dies aber nur, wenn man noch die
Option -m mit angiebt.

Gruß

marce
05.08.08, 11:39
dann ist evtl. die man-Page veraltet, ein Alias gesetzt, ...

Lösch die Dateien halt...

harald76
05.08.08, 11:58
Okay hab ich gemacht, aber jetz kann ich mich nichtmehr via ftp mit dem user einloggen:


500 OOPS: cannot change directory:/meins/user
500 OOPS: child died
Verbindung beendet durch Remotehost.

marce
05.08.08, 12:10
Verzeichnisrechte des Baums?

harald76
05.08.08, 13:58
Danke für den Tipp, ich hatte wirklich vergessen die Rechte für das Verzeichnis zu setzen. Danke.

Gruß

marce
05.08.08, 13:59
ich hoffe mal, bei dem hier zu vermutenden Kenntnisstand, die Kiste ist kein öffentlich erreichbarer Root-Server.

harald76
05.08.08, 14:18
Nein, nein ist er nicht :p
Aber ich hätte noch eine Frage. Ich kann ja via "cmds_allowed" Befehle sperren. Geht das auch nur für einen user? Im moment ist es halt in der "/etc/vsftpd/vsftpd.conf" un zieht für jeden user an. Ich möchte aber nur einem User den get befehl sperren.

Gruß