Before creating FTP user
In order to be able of creating a FTP user by SSH, there are two requirements you need to fullfill first which are preparing the server and configuring VSFTPD after that.
Server preparation
Servers are usually installed with ftp-server and ftp-client. But if the server is brand new, they also can be installed by commands. Here we use VSFTPD to setup ftp server.
- As for Ubuntu:
sudo apt-get update
sudo apt-get install ftp
sudo apt-get install vsftpd
- As for Centos:
sudo yum install vsftpd
sudo yum install ftp
VSFTPD Configuration
For Ubuntu, use sudo nano /etc/vsftpd.conf
For Centos, use sudo nano /etc/vsftpd/vsftpd.conf
After opening the file, we edit a few lines as listed followings:
- Remove comment line 29 and 33
write_enable=YES
local_umask=022
- Remove comment line 120 (in order to prevent access to the outside of that user’s Home directory)
chroot_local_user=YES
- Change pam_service_name=sftp to pam_service_name=ftp
- Add allow_writeable_chroot=YES at the end of the file
Until now the configuration is considered to be finished. You just need to restart the service by using command sudo service vsftpd restart.
Create FTP user
In SSH we type:
useradd -d /path/to/user/home/directory/ -s /bin/bash -g groupname newusername
In which:
- -d /path/to/user/home/directory/ is the server path to default directory as user connects to FTP server.
- -s /bin/bash is command allowing an user to connect via SSH. If you don want that to be allowed, use /bin/false
- -g groupname is to add new user to the group name “groupname”
- newusername is just the name to sign in of the account we are creating
To set password for new user:
passwd newusername
You will first be prompted to enter New UNIX password and Retype new UNIX password.
Now fill in the password twice (Command prompt will not move when you are typing). On successful password creation, there will be a notification like this:
passwd: all authentication tokens updated successfully.
Change FTP user
To replace the old username by a new one, just type this command
usermod -d /path/to/user/home/directory/ -s /bin/false – newusername
in which: all parameters are already explained in part 2 “Create FTP user”
Remove FTP user
To completely delete a FTP user, use userdel username.
If you want to delete home directory of user too, use userdel -r username.