Previous section: Rackspace Cloud Essentials - Install vsftpd for CentOS

This article describes how to create system users in vstfpd and chroot them (isolate or “jail” them to their home directory) if necessary.

Add a system user#

Create a new user for FTP access in vsftpd by creating a new valid Linux system user with the following commands:

useradd test
passwd test

Disable SSH access for FTP users#

The default user creation script gives a user the /bin/bash shell, which can be a little too powerful. If you don’t want your users to log in to your server via SSH, you can block this access. When you change the shell to /bin/false, the users can log in only via FTP or mail if you have that set up.

Modify the user access with the following command:

usermod -s /sbin/nologin test

Chroot a user#

Now you can configure vsftpd to be able to chroot (commonly referred to as jailing) users to their home directories for security and privacy. When you chroot users, they can’t move up a level in the directory structure after they log in.

With vsftpd, you can chroot a user by editing the following in the file /etc/vsftpd/vsftpd.conf:

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

You must create a vsftp.chroot_list file and enter users who do not use chroot. Every user uses chroot by default. Therefore, create a chroot_list file, even if the file is going to remain empty:

touch /etc/vsftpd/vsftpd.chroot_list

After the file is created and you have set up your chroot_list, restart vsftpd with the following command:

service vsftpd restart