How to add pointers to filesystems outside the chrooted environment - using chrooted SFTP via OpenSSH

8

1

So, I'm pretty sure this is true, but I haven't found a specifically detailed independent reference that directly answers my question. Question being:

How can I add access to a resource that is outside the chroot environment?

I have set up chroot SFTP using OpenSSH's newish ChrootDirectory directive.

Unfortunately, in my environment, I cannot directly restrict chroot to the main directory where certain user resources live. So I created a separate chroot area, and am linking in the required resources.

I tried using symlinks to do this. e.g.

ln -s /path/to/resource /chroot/dir/resource

But that got a "could not canonicalize directory not found" error

So my solution was to use a bind mount:

mount --bind /path/to/resource /chroot/dir/resource

That worked.

Really, I just wanted general confirmation that symlinks won't work. A link to a good reference describing this would be nice also.

JDS

Posted 2011-02-17T18:48:54.073

Reputation: 442

Answers

7

You can't use symlinks, that is true. Symbolic links are relative to root directory (/), and in chroot that is chroot's root, not your filesystem root.

Here's proftpd documentation page explaining the same thing.

Olli

Posted 2011-02-17T18:48:54.073

Reputation: 6 704