Die Entwickler haben in deiner (und meiner) Version ,2.3.5 das Schreiben unter chroot eingeengt, leider aber in den offiziellen Ubuntu-repositories "vergessen" das richtig zu kompilieren.
Du kannst entweder das chroot weg lassen oder untenstehende Anleitung zum selbstkompilieren befolgen, dann funktioniert chroot_local_user=YES mit dem Zusatz allow_writable_root=YES in der vsftpd.conf
HIER NUN DIE ANLEITUNG!!!
Diese Anleitung gilt für 12.04LTS wo das vsftpd-update auf 2.3.5 geändert wurde und die ext conf NICHT in die binaries übertagen werden soll!!!
Nach dieser anleitung kommt vsftpd-2.3.5-ext.1 zur verwendung!!!
Ich übernehme keine gewähr auf funktion und vollständigkeit!!!
1.) vsftpd.conf sichern
z.B.
sudo cp /etc/vsftpd.conf /etc/vsftpd.meine.conf
2.) vsftpd deinstallieren
sudo aptitude remove vsftpd
sudo aptitude purge vsftpd
3.) mit
cd
ins home-verzeichnis wechseln
4.) erstellen des vsftpd verzeichnisses zum installieren
sudo mkdir vsftpd
5.) rechte auf den user mit
sudo chown USER:USER /home/USER/vsftpd
ändern
6.) in das verzeichnis wechseln
cd vsftpd
7.) sourcecode herunterladen
wget http://vsftpd.devnet.ru/files/2.3.5/ext.1/vsFTPd-2.3.5-ext1.tgz
8.) entpacken
tar xzvf vsFTPd-2.3.5-ext1.tgz
9.) ins entpackte verzeichnis wechseln
cd vsFTPd-2.3.5-ext.1
10.) SSL_patch herunterladen
wget http://vsftpd.devnet.ru/files/2.3.5/ext.1/patch/1.%20ssl_userlist.patch
11.) patch beifügen
patch -p0 < "1. ssl_userlist.patch"
12.) builddefs ändern. DEFAULT IST UNVOLLSTÄNDIG!!!
mit
nano builddefs.h
öffnen
DAS HIER VOLLSTÄNDIG AUSWECHSELN!!!
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL
#define VSF_CONFIG_PATH "/etc/vsftpd/"
#define VSF_CONFIG_PREFIX "vsftpd."
//#define VSF_CONFIG_PATH "/etc/"
//#define VSF_CONFIG_PREFIX "vsftpd."
#endif /* VSF_BUILDDEFS_H */
speichern und schliessen!
13.) build mit
make
14.) conf datei sollte im aktuellen verzeichnis erstellt werden
ls -l vsftpd
sollte so aussehen
~/vsftpd/vsFTPd-2.3.5-ext.1$ ls -l vsftpd
-rwxrwxr-x 1 elrippo elrippo 200248 Jul 2 18:25 vsftpd
15.) es gibt noch eine weitere option, bei mir hats funktioniert. Wenns mit dem User nicht funktioniert dann mit sudo
make install
16.) nach make install sollte die vsftpd datei nach /usr/local/sbin/vsftpd kopiert worden sein
ls -l /usr/local/sbin/vsftpd
sollte so aussehen
~/vsftpd/vsFTPd-2.3.5-ext.1$ ls -l /usr/local/sbin/vsftpd
-rwxr-xr-x 1 root root 200248 Jul 2 18:30 /usr/local/sbin/vsftpd
17.) man pages kopieren
cp vsftpd.8 /usr/share/man/man8/
cp vsftpd.conf.5 /usr/share/man/man5/
18.) mit
file ./vsftpd
die Ausgabe überprüfen. sollte so aussehen
~/vsftpd/vsFTPd-2.3.5-ext.1$ file ./vsftpd
./vsftpd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xc44c5c1b60f084d1aa954d00af74b5f0887ebb0d, stripped
19.) mit
ldd ./vsftpd
die libaries überprüfen. sollte so aussehen
~/vsftpd/vsFTPd-2.3.5-ext.1$ ldd ./vsftpd
linux-gate.so.1 => (0xb77aa000)
libcap.so.2 => /lib/i386-linux-gnu/libcap.so.2 (0xb779c000)
libpam.so.0 => /lib/i386-linux-gnu/libpam.so.0 (0xb778e000)
libwrap.so.0 => /lib/i386-linux-gnu/libwrap.so.0 (0xb7783000)
libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xb772d000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb7582000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73dd000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb73d8000)
libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xb73bd000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb73a7000)
/lib/ld-linux.so.2 (0xb77ab000)
20.) mit
./vsftpd -?
die Version überprüfen. sollte so aussehen
~/vsftpd/vsFTPd-2.3.5-ext.1$ ./vsftpd -?
vsFTPd version 2.3.5+ (ext.1)
Type 'vsftpd -v' to see the program version
Usage: vsftpd <config> [options]
<config> - full path to configuration file
Options:
-o<parameter>=<value>
parameter and value you can look in vsftpd configuration file manual
21.) vsftpd.conf datei modifizieren
sudo nano /etc/vsftpd.meine.conf
folgende zeile einfügen
allow_writable_root=YES
speichern und schliessen.
22.) datei an den ort kopieren, wo vsftpd diese sucht.
sudo cp /etc/vsftpd.meine.conf /etc/vsftpd/vsftpd.conf
23.) starten des vsftp deamons
sudo vsftpd /etc/vsftpd/vsftpd.conf
24.) überprüfen ob er läuft
sudo lsof -nPi | grep vsftpd
sollte folgende ausgabe erfolgen
[sudo] password for user:
vsftpd 2832 root 0u IPv4 15574 0t0 TCP *:990 (LISTEN)
nun ist der vsftpd server wieder einsatzbereit 😬