10

I tried to give proftpd virtual users access to directories outside their home paths using symlinks I created as root through the console.

/var/ftp/users/test is the home of the user named test.
/var/ftp/files/documents is the directory that holds the documents, and /var/ftp/users/test/documents is the symlink that points to it.

But when an user connects to the FTP and tries to follow the symlink, he only sees this error:

documents: No such file or directory

What am I doing wrong?

1 Answer 1

26

Symlinks are locked into the jail the same way the user is; otherwise it would be possible for the user to break out of the jail with cd documents. (No, root-created symlinks can't be treated specially, for the same reason that cd -P symlink-to-dir; cd .. leaves you in the wrong place; the appearance of it working as you'd expect is an illusion created by the shell.) Use a bind mount instead (mount --bind /var/ftp/files/documents /var/ftp/users/test/documents).

4
  • 1
    This needs to be done every time the server restarts, right? Apr 4, 2011 at 4:51
  • 2
    Yes; you'll want to put it in /etc/fstab.
    – geekosaur
    Apr 4, 2011 at 4:52
  • 11
    Just for example to help anyone else out, here are the mount and fstab quivelants: mount mount --bind /path/to/original/directory /path/to/mountpoint fstab /path/to/original/directory /path/to/mountpoint none bind 0 0 Apr 7, 2013 at 23:33
  • This works for me, even when the destination is on another mount point! /mnt/.... Dec 7, 2023 at 21:05

You must log in to answer this question.

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