I have a user which is chrooted to her home directory, but I want her to also be able to manage files within /var/www. As such, I did the following:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

However, when I try to open /www with FileZilla it returns "no such file or directory". I can see the linked directory, but I can't access it. What am I doing wrong?

1 Answer 1


Symlinks are essentially just pointers to another file, you can't point to something outside the chroot because it is looking for a file with that name (/var/www, which doesn't exist inside the chroot). Hardlinks on the other hand are pointers to the inode. As such, if you want to do that, you need to use a hard link by omitting -s. However, you cannot hard link a directory (other than . and ..) in Linux for a variety of reasons (the main one being that those filesystems are a DAG).

Perhaps the best way would be to use a bind mount. Try this:

mount --bind /var/www /home/username/www
  • ln: '/var/www': hard link not allowed for directory
    – Doc
    Nov 14, 2012 at 15:53
  • 7
    @Doc - Directories cannot be hard linked in Linux. A bind mount should work.
    – Chris Down
    Nov 14, 2012 at 16:03
  • 1
    Can I add this to fstab to make it persistent?
    – Kornel
    Aug 31, 2017 at 14:43
  • 2
    I've mounted folder successfully, but chrooted user can't see existing files inside mounted folder. How can I fix this?
    – AdvanTiSS
    Nov 29, 2017 at 12:51
  • 1
    @Kornel you can use the none mode along with bind option: serverfault.com/questions/613179/…
    – Yvan
    Feb 8, 2018 at 16:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.