This post is rather old, and everything is secure on the internet these days, so rather than FTP, it is recommended that you setup the new user with SFTP instead (Secure file transfer protocol), SCP is another option, but i have an sftp article ready for you here
So here is a quick guide to setting up a user to have access to a certain directory via FTP
You probably already use a Linux server, you access your files via SFTP or SCP, but you want to give someone access to a certain directory within.
Here is how it is done on a Debian squeeze machine
apt-get install pure-ftpd-common pure-ftpd Then we need to add a group and default user for our program
groupadd ftpgroup useradd -g ftpgroup -d /dev/null -s /etc ftpuser pure-pw useradd test1 -u ftpuser -d /home/ftpusers/test1 pure-pw mkdb
This creates the file mentioned earlier called /etc/pureftpd.pdb, this file houses all information related to your virtual users
pure-pw passwd test1
Once password is set, update the database
pure-pw mkdb
To delete a user
pure-pw userdel test1 pure-pw show test1
pure-ftpwho
Create symlink to add PureDB to authentication methods
cd /etc/pure-ftpd/auth ln -s ../conf/PureDB 50pure
Disable PAM authentication unless you need it
echo no > /etc/pure-ftpd/conf/PAMAuthentication
Disable UNIX authentication unless you need it
echo no > /etc/pure-ftpd/conf/UnixAuthentication