Take the tour ×

I am trying to get chroot to work with virtual Pure-FTPD users, but for some reason it simply is not working.

I changed the following options:





And added a virtual user with a homedirectory, which shows like this:

Login              : <someuser>
Password           : <foo>
UID                : 1003 (ftpuser)
GID                : 1003 (ftpgroup)
Directory          : /home/<homedir>/./

What am I missing here?

share|improve this question
Can you describe exactly what is not working? Is the user able to login but just not chrooted? –  pablo Mar 2 '11 at 10:58
@pablo that is exactly the case as mentioned in the title. Login works, chroot does not. –  Aron Rotteveel Mar 2 '11 at 11:19
add comment

2 Answers

Try set VIRTUALCHROOT=false and "/./" from user home dir.



cat /etc/pure-ftpd/conf/ChrootEveryone:


When restart, exist -A option:

/etc/init.d/pure-ftpd restart Restarting ftp server: Running: /usr/sbin/pure-ftpd -l pam -O clf:/var/log/pure->ftpd/transfer.log -u 1000 -E -A -8 UTF-8 -B



Chroot work:

# ftp localhost
Connected to localhost.
220-You are user number 1 of 50 allowed.
220-Local time is now 11:03. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (localhost:ooshro): test
331 User test OK. Password required
230-User test has group access to:  test      
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
150 Connecting to port 40034
226-Options: -l 
226 0 matches total
share|improve this answer
Tried this already and does not work. The init.d script outputs nothing, by the way. –  Aron Rotteveel Mar 2 '11 at 16:39
youtube.com/watch?v=B0X98ayID1k –  ooshro Mar 2 '11 at 16:47
add comment
up vote 0 down vote accepted

Solved it.

Turned out my FTP server was running through inetd instead of standalone.

When configured in inetd mode, the conf dir seems to be ignored.

share|improve this answer
add comment

Your Answer


