Google+ Badge

Sunday, January 11, 2015

How to Setup Vsftpd server and Point the Home Directory manually

FTP is used to transfer files from one host to another over TCP network. There are 3 popular FTP server packages available PureFTPD, VsFTPD and ProFTPD. 

If you are login as a normal user, you have to use "sudo" before the command, only for the first time. If your in root login, you can simply use the command, without "sudo".

Step 1 » Update your repositories.
     root@digidom:~# apt-get update

Step 2 » Install VsFTPD package using the below command.
     root@digidom:~# apt-get install vsftpd

Step 3 » Check the vsftpd directories and file paths.
     root@digidom:~# whereis vsftpd

     vsftpd: /usr/sbin/vsftpd /etc/vsftpd.conf /usr/share/man/man8/vsftpd.8.gz

Step 4 » Backup the /etc/vsftpd.con file

     root@digidom:~# cp /etc/vsftpd.conf /etc/vsftpd.conf.back

Step 5 » After installation open /etc/vsftpd.conf file and make changes as follows.

     root@digidom:~# vi /etc/vsftpd.conf
     root@digidom:~# egrep -v '^#|^$' /etc/vsftpd.conf

Step 6 » Restart vsftpd service using the below command.
     root@digidom:~# service vsftpd restart

Step 7 » Create a User account with nologin shell and specify Home Directory location, I point to "/var/www/html/" and set the password. You can specify your own path.

Note : Do not delete this account using "userdel -rf mailftp". It will remove html directory, because this user (mailftp) home directory is /var/www/html/. 

  root@digidom:~# useradd -m -d /var/www/html/ -s /usr/sbin/nologin mailftp

  root@digidom:~# passwd mailftp

Options 1 » If you have any doubt in nologin shell, check the login shell.
     root@digidom:~# cat /etc/shells
          # /etc/shells: valid login shells

If not there /usr/sbin/nologin just add for using this command.

     root@digidom:~# echo "/usr/sbin/nologin" >> /etc/shells

Step 8 » Check the user accounts details
     root@digidom:~# tail /etc/passwd | grep mailftp

Step 9 » Set the permission.

     root@digidom:~# chown mailftp:root /var/www/html/
     root@digidom:~# ll -d /var/www/html/
          drwxr-xr-x  5 mailftp root 4096 Dec 16 22:55 html/


     root@digidom:~# chown root:mailftp /var/www/html/
     root@digidom:~# chmod -R 775 /var/www/html/
     root@digidom:~# ll -d /var/www/html/
          drwxrwxr-x  5 root mailftp 4096 Dec 16 22:55 html/
     root@digidom:~# service vsftpd restart

Step 10 » If another option is create a directory inside of html user home directory point this.

    root@digidom:~# useradd -m -d /var/www/html/ftp -s /usr/sbin/nologin mailftp

    root@digidom:~# passwd mailftp

    root@digidom:~# chown mailftp:mailftp /var/www/html/ftp
    root@digidom:~# ll -d /var/www/html/ftp
          drwxr-xr-x  5 mailftp mailftp 4096 Dec 16 22:55 ftp/

    root@digidom:~# service vsftpd restart

That's it............