In the last article, CentOS - Installing vsftpd, we walked through setting up a working install of vsftpd. This article will be fairly short, we're going to walk through creating a system user and chrooting (jail - isolation to their home directory) them if necessary.
Contents |
Yes, it is this simple, creating a new user for ftp access in vsftpd is as easy as creating a new valid linux system user.
# useradd test
# passwd test
The default user creation script will give a user the /bin/bash shell, which can be a little too powerful. If you don't want your users logging into your server via SSH, we need to know how to block this access. If you change the shell to /bin/false, the users will only be able to login via ftp or mail if you have that setup. Here is how to modify your users:
usermod -s /sbin/nologin test
Alright and probably the most important part of this article is the ability to lock a user down to their own home directory so they don't go around mucking with things they aren't supposed to. The beauty of this is it is a function built in to vsftpd and was partially covered in the Installing vsftpd article. All you have to do is add the username to the file /etc/vsftpd/chroot_list, each user on their own line.
That pretty much covers it for vsftpd, and at this point you should be able to create a new system user, set them up for vsftpd and do some basic tweaks to their access level. These last two articles dealt with vsftpd in a CentOS Linux system. Now we will show you how to install vsftpd on a server running Ubuntu.
© 2011-2013 Rackspace US, Inc.
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License

6 Comments
Where is the home directory set?
This worked and I could log in and upload a file, but where was the user set a home directory?
I can't work out where the file is in the structure
User home directory
You can add the user and
useradd -d /var/www/html/ -s /bin/false -g groupname username
replace "/var/www/html/" with the path to home folder
replace "groupname" with the users group
replace "username" with the user name you want to create.
--
If the user already exists use:
usermod -g groupname username
--
Google and the man command are your best friends. :-)
Really useful info.
If a noob like me read this it might confuse. Specially because does not mentioned how to set the home directory, so I figure it out with your comment. Just do
<code># usermod -d /var/www/html/folderforuser username</code>
Just change 'folderforuser' for the actual folder your assigning to the user and change 'username' for the user created previously
Thanks ryan, for your input.
Add permissions to edit website files also
My test user is "eric". His home dir is "/home/eric".
Mt test website is in "/var/www/rs-cloudtest1.com/html".
If I run this code:
usermod -d /var/www/rs-cloudtest1.com/html eric
Will that prevent him from accessing his own folder "/home/eric" ?
thanks
re: permissions
http://www.rackspace.com/knowledge_center/article/virtual-hosts-permissions
For a more in-depth discussion of how Linux file permissions work you can read this article series:
http://www.rackspace.com/knowledge_center/article/linux-file-permission-concepts
Add new comment