ProFTPD tidak dapat diinstall langsung menggunakan repository official CentOS, untuk melakukan instalasi dan konfigurasi awal di CentOS dapat mengikuti artikel http://artikel.magnet-id.com/pengelolaan-linux/menggunakan-tar-untuk-kompresi-file-dan-direktori/.
Artikel ini akan memberikan panduan untuk membuat ProFTPD menggunakan Auth User File sebagai referensi authentikasi user, dan bukan berdasarkan user linux.
Contoh kasus yang membuat hal ini dibutuhkan adalah ketika service httpd berjalan sebagai global user httpd, dan php yang digunakan adalah modphp sehingga php akan berjalan sebagai user httpd. Ketika transfer file terjadi melalui interface web, maka file yang ditulis / diupload akan dimiliki oleh user httpd. Sementara ketika kita melakukan transfer file melalui interface FTP, maka file yang diupload akan dimiliki oleh user login FTP tersebut.
Ketika kita menggunakan standard linux user sebagai login FTP maka akan terjadi kendala permission ketika file tersebut ingin diakses melalui service httpd.
Membuat user virtual menggunakan Auth User File dapat dilakukan dengan program yang bernama ftppasswd. Program ini dapat di download melalui http://www.castaglia.org/proftpd/contrib/ftpasswd dan panduannya dapat dibaca lebih lanjut di http://www.castaglia.org/proftpd/contrib/ftpasswd.html .
cd /usr/local/src/ wget http://www.castaglia.org/proftpd/contrib/ftpasswd
Ubah permission agar bisa dieksekusi
chmod 0755 ftpasswd
Dapatkan informasi berapa UID dan GID dari user httpd
cat /etc/passwd | grep apache apache:x:48:48:Apache:/var/www:/sbin/nologin
Dalam hal ini (CentOS) user yang menjalankan httpd adalah apache (UID 48 dan GID 48), pada distribusi lain akan berbeda, seperti pada ubuntu service apache / httpd akan dijalankan oleh user www-data.
Buat User FTP dengan home direktori ke home direktori virtual host dari web site / user terkait, contohnya adalah user domainx yang home direktori virtual hostnya mengarah ke /var/www/html/www.domainx.com , hal ini akan sangat tergantung kepada konfigurasi virtual host dari service httpd anda.
./ftpasswd --passwd --name=domainx --file /etc/ftpd.passwd --uid=48 --gid=48 --home /var/www/html/www.domainx.com --shell /bin/false
Masukkan password sebanyak dua kali, perintah ini akan membuat file bernama /etc/ftpd.passwd yang berisikan informasi username dan password yang akan digunakan oleh ProFTPD.
Langkah selanjutnya adalah melakukan modifikasi pada file konfigurasi ProFTPD yang pada kasus ini terletak di /etc/proftpd.conf , file konfigurasi akan tergantung kepada setup yang anda miliki.
vim /etc/proftpd.conf
Kemudian tambahkan / ubah direktif berikut
RequireValidShell off AuthOrder mod_auth_file.c AuthUserFile /etc/ftpd.passwd
Setelah itu restart proftpd dan lakukan pengetesan dengan melakukan upload menggunakan ftp client yang anda gunakan.