I have a fuzzy notion of what the term "ftp jailing" means, but when it comes to permissions and security, fuzzy is imprudent. What is it? How is it implemented? Is it mostly a capability of the ftp server, or does it emerge from how the underlying OS does permissions?
Here's how I do it in a Windows IIS environment. Figure it will help someone in the future.
FTP jailing means that the loggend in user sees his root directory as one that you define. He cannot go any higher up the tree, as the FTP client sees his dir as the root directory.
Say you have the following:
You set the root to /home/ben_linus/
He will see
"Jailing" in ftp means locking the ftp session to a particular subset of the filesystem. Usually it is set so that if a particular user logs in, they can only ftp to their own directory space.
The ftp server will often have an option that, when a user is connected, to chroot the user, which means as far as that user is concerned, the root of the universe is some specific portion of the total available filesystem.
'vsftp' has a really clear explanation and how-to at vsftpd.
Some other examples include proftp and ftp on hp/ux.
I don't see a reason why it should be OS dependent. Nothing keeps you from coding an FTP server that will return / for some random directory after using
cd ..
often enough without actually being in / on Unix or at the top level drive in Windows.Regarding permissions it depends a lot on how you configure your FTP servers, some FTP servers can map from/to any user, that means you could configure an FTP server that need "normal" authentication but when writing the file to the OS on the host permissions will be mapped to a certain user you configured.
Some discussion about chroot (as well as a follow up link) can be found in the ProFTPd FAQ.
It's a feature of the ftp server (for the most of them) for example with vsftpd you can "jail" users to their homedir by using configuration
The ftp server will not let the user to go below that directory.
It can mean two things:
In the old days on UNIX systems, jailing users to a certain directory was cumbersome, error prone, and could lead to problems. You had to compile special static linked binaries for things like ls and cd and move them in to the jail, for instance. If your OS / software is requiring this - note to the wise, it's problematic. I much prefer newer FTP servers that don't require this approach.
On IIS, I find jailed FTP difficult to do - though there is one description for something close above, its not exactly as smooth. Kudos for doing that though, I've tried many times to find something like that. I use Filezilla on Windows instead, it has a rather elegant solution to the jails problem that works as expected. No security ramifications that I'm aware of, Filezilla seems to fix vulnerabilities quickly.
Modern UNIX FTP implementations seem to make jailing much easier, and probably much safer. The majority of the security concerns remaining; once you assume that you are OK to grant your user access to anything below the jail point, is the question of "is my vendor / FOSS software provider providing patches in a timely manner?"