On a Ubuntu 11.04 server, I want to restrict a user to a specific directory (so he can't access the parents' directory) for FTP/ssh. I created the user with adduser username and changed the target directory with usermod -d /home/path/to/directory username. This worked perfectly.

From what I found I have to modify a /etc/ftp/ftpaccess file but the file (and the ftp) directory does not exist. I tried creating it but it didn't change anything. Also I only want to restrict this user and not the others.

Any ideas?

  • Hey one query, if the session is an anonymous one. How can I limit it to a specific directory.? Oct 21, 2020 at 13:23

4 Answers 4


The best way, is to use SFTP from SSH and jail the user.

in file: /etc/ssh/sshd_config

make sure this line is uncomented:

Subsystem sftp internal-sftp

Then configure the rule to match a group:

Match group sftponly
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp

and lastly manage the users:

# chown root.root /home/user
# usermod -d / user
# adduser user sftponly

Source: http://www.debian-administration.org/articles/590

  • For not affecting the usage of sftp for users that belong to a group other than "sftponly" (i.e. keeping), could I specify the Subsystem command inside the match, leaving the previous configuration unchanged?
    – reallynice
    Nov 17, 2014 at 12:01
  • Hey one query, if the session is an anonymous one. How can I limit it to a specific directory.? Oct 21, 2020 at 13:24

A bit late in the day but it may help others in the future. I installed VSFTPD and edited the configuration file vsftpd.conf so it includes:-


You need to restart the service after editings:-

service vsftpd restart

The FTP Users are restricted to Home Directory specified when adding them.


You need to install a FTP Server first! Read the documentation:

You need to chose one of the FTP Servers in the comment .. Or if you have already installed SSH you can use SFTP.. To do this, just on your FTP client type:

  • Host: sftp://ssh_server_hostname_or_ip
  • login:your_ssh_server_user_name
  • pass: your_ssh_server_user_password

You'll be able to r/w on all the directories that belong to your ssh user


add a guestuser option to the ftpaccess file in the /etc directory

  • Are you saying that /etc/ftpaccess is the correct path to the configuration file? What should this guestuser option look like? Jul 26, 2016 at 21:49
  • OP cannot find the ftpaccess file, and that is quite likely since there are several ftp implementations out there. You should outline at least on implementation (preferably several) and tell how to make a distinction between them.
    – grochmal
    Jul 26, 2016 at 22:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .