The FreeBSD Diary

The FreeBSD Diary (TM)

Providing practical examples since 1998

If you buy from Amazon USA, please support us by using this link.
[ HOME | TOPICS | INDEX | WEB RESOURCES | BOOKS | CONTRIBUTE | SEARCH | FEEDBACK | FAQ | FORUMS ]
Creating a chroot ftpd 27 January 2000
Need more help on this topic? Click here
This article has no comments
Show me similar articles
This article shows how to create a chroot'd ftpd which has a self-contained ls command.
Background
The original article which referenced chroot and ftpd is installing an alternative ftp daemon - proftpd.  In that article you will read about a problem I was having with ftpd which was associated with chroot.  If I placed a user in /etc/ftpchroot, they were unable to use the ls command.  I understand this is because the ls executable must be placed within the chroot tree.

The instructions in the next section show you how to create ftpd so it does not need an external ls command.

Instructions
CT Johnson and Kanji T Bates each wrote in with instructions.  Thank you.

The following steps will create an ftpd which contains a built in ls.  Note that these instructions are for FreeBSD 3.1 through FreeBSD 3.4.  For FreeBSD 4.0, these steps are not required as this ftpd has the ls command built in.

Note that you will need /usr/src/bin to exist before you do these steps.  To install the source code, do this as root:

# /stand/sysinstall
Configure
Distributions
src
bin 

Once you have /usr/src/bin, you can do this:

# cd /usr/src/libexec/ftpd
# make clean
# make -DFTPD_INTERNAL_LS
# make install

You now have an ftpd that does not require access to /bin/ls.   With this in place, you can set up our webserver so that each of your users logs into a chrooted enviornment that contains ONLY their files. And you don't have to have a zillion hard links to /bin/ls and a bin dir in each users home directory.


Need more help on this topic? Click here
This article has no comments
Show me similar articles