есть freebsd 5.2 rel + proftpd из портов
есть стандартный конфиг под анонима
есть fat32 раздел на 80гигов
/dev/ad0s1 /usr/home/ftp/pub msdos rw,noexec,nosuid,nosymfollow,-uftp,-gftp,-m660 0 0
фтп для анонима роботает нормально, но он не может зайти в диру pub
что делать ?
лог
-------
Starting proftpd.
- parsing '/usr/local/etc/proftpd.conf' configuration
- dispatching auth request "getpwnam" to module mod_auth_file
- dispatching auth request "getpwnam" to module mod_auth_unix
- dispatching auth request "getgrnam" to module mod_auth_file
- dispatching auth request "getgrnam" to module mod_auth_unix
- <Directory />: adding section for resolved path '/'
router.nikn -
router.nikn - Config for ProFTPD Default Installation:
router.nikn - ~ftp/
router.nikn - Limit
router.nikn - DenyAll
router.nikn - UserName
router.nikn - GroupName
router.nikn - UserAlias
router.nikn - MaxClients
router.nikn - DisplayLogin
router.nikn - DisplayFirstChdir
router.nikn - Umask
router.nikn - /
router.nikn - AllowOverwrite
router.nikn - Umask
router.nikn - DefaultServer
router.nikn - Umask
router.nikn - UserID
router.nikn - UserName
router.nikn - GroupID
router.nikn - GroupName
router.nikn - dispatching auth request "getgroups" to module mod_auth_file
router.nikn - dispatching auth request "getgroups" to module mod_auth_unix
...
ANON anonymous: Login successful.
opening TransferLog '/var/log/xferlog'
dispatching auth request "setpwent" to module mod_auth_file
dispatching auth request "setpwent" to module mod_auth_unix
dispatching auth request "setgrent" to module mod_auth_file
dispatching auth request "setgrent" to module mod_auth_unix
dispatching auth request "getpwent" to module mod_auth_file
dispatching auth request "getpwent" to module mod_auth_unix
dispatching auth request "getgrent" to module mod_auth_file
dispatching auth request "getgrent" to module mod_auth_unix
Preparing to chroot() the environment, path = '/usr/home/ftp'
Environment successfully chroot()ed.
in dir_check_full(): path = '/', fullpath = '/usr/home/ftp/'.
dispatching POST_CMD command 'PASS (hidden)' to mod_readme
dispatching POST_CMD command 'PASS (hidden)' to mod_ratio
dispatching POST_CMD command 'PASS (hidden)' to mod_log
dispatching POST_CMD command 'PASS (hidden)' to mod_ls
dispatching POST_CMD command 'PASS (hidden)' to mod_auth
dispatching LOG_CMD command 'PASS (hidden)' to mod_log
dispatching LOG_CMD command 'PASS (hidden)' to mod_ratio
dispatching PRE_CMD command 'SYST' to mod_core
dispatching PRE_CMD command 'SYST' to mod_core
dispatching CMD command 'SYST' to mod_core
dispatching LOG_CMD command 'SYST' to mod_log
dispatching PRE_CMD command 'PWD' to mod_core
dispatching PRE_CMD command 'PWD' to mod_core
dispatching CMD command 'PWD' to mod_core
in dir_check_full(): path = '/', fullpath = '/usr/home/ftp/'.
dispatching LOG_CMD command 'PWD' to mod_log
dispatching PRE_CMD command 'REST 0' to mod_core
dispatching PRE_CMD command 'REST 0' to mod_core
dispatching CMD command 'REST 0' to mod_xfer
dispatching LOG_CMD command 'REST 0' to mod_log
dispatching PRE_CMD command 'PORT 192,168,0,21,19,137' to mod_core
dispatching PRE_CMD command 'PORT 192,168,0,21,19,137' to mod_core
dispatching CMD command 'PORT 192,168,0,21,19,137' to mod_core
dispatching LOG_CMD command 'PORT 192,168,0,21,19,137' to mod_log
dispatching PRE_CMD command 'LIST' to mod_core
dispatching PRE_CMD command 'LIST' to mod_core
dispatching PRE_CMD command 'LIST' to mod_ratio
dispatching CMD command 'LIST' to mod_ls
active data connection opened - local : 192.168.0.1:20
active data connection opened - remote : 192.168.0.21:5001
in dir_check_full(): path = '/', fullpath = '/usr/home/ftp/'.
in dir_check_full(): path = '/pub', fullpath = '/usr/home/ftp/pub'.
dispatching auth request "gid_name" to module mod_auth_file
dispatching auth request "gid_name" to module mod_auth_unix
dispatching auth request "uid_name" to module mod_auth_file
dispatching auth request "uid_name" to module mod_auth_unix
dispatching POST_CMD command 'LIST' to mod_ratio
dispatching LOG_CMD command 'LIST' to mod_log
dispatching LOG_CMD command 'LIST' to mod_ls
dispatching PRE_CMD command 'CWD pub' to mod_core
dispatching PRE_CMD command 'CWD pub' to mod_core
dispatching PRE_CMD command 'CWD pub' to mod_ratio
dispatching CMD command 'CWD pub' to mod_ratio
dispatching CMD command 'CWD pub' to mod_core
in dir_check_full(): path = '/pub', fullpath = '/usr/home/ftp/pub'.
dispatching LOG_CMD_ERR command 'CWD pub' to mod_log
dispatching PRE_CMD command 'CWD pub/' to mod_core
dispatching PRE_CMD command 'CWD pub/' to mod_core
dispatching PRE_CMD command 'CWD pub/' to mod_ratio
dispatching CMD command 'CWD pub/' to mod_ratio
dispatching CMD command 'CWD pub/' to mod_core
in dir_check_full(): path = '/pub', fullpath = '/usr/home/ftp/pub'.
dispatching LOG_CMD_ERR command 'CWD pub/' to mod_log
dispatching PRE_CMD command 'CWD pub' to mod_core
dispatching PRE_CMD command 'CWD pub' to mod_core
dispatching PRE_CMD command 'CWD pub' to mod_ratio
dispatching CMD command 'CWD pub' to mod_ratio
dispatching CMD command 'CWD pub' to mod_core
in dir_check_full(): path = '/pub', fullpath = '/usr/home/ftp/pub'.
dispatching LOG_CMD_ERR command 'CWD pub' to mod_log
dispatching PRE_CMD command 'CWD pub/' to mod_core
dispatching PRE_CMD command 'CWD pub/' to mod_core
dispatching PRE_CMD command 'CWD pub/' to mod_ratio
dispatching CMD command 'CWD pub/' to mod_ratio
dispatching CMD command 'CWD pub/' to mod_core
in dir_check_full(): path = '/pub', fullpath = '/usr/home/ftp/pub'.
dispatching LOG_CMD_ERR command 'CWD pub/' to mod_log
dispatching PRE_CMD command 'CWD pub' to mod_core
dispatching PRE_CMD command 'CWD pub' to mod_core
dispatching PRE_CMD command 'CWD pub' to mod_ratio
dispatching CMD command 'CWD pub' to mod_ratio
dispatching CMD command 'CWD pub' to mod_core
in dir_check_full(): path = '/pub', fullpath = '/usr/home/ftp/pub'.
dispatching LOG_CMD_ERR command 'CWD pub' to mod_log
dispatching PRE_CMD command 'CWD pub/' to mod_core
dispatching PRE_CMD command 'CWD pub/' to mod_core
-------
у клиента
<- 550 pub: Permission denied
-> CWD pub/
<- 550 pub/: Permission denied
-> CWD pub
<- 550 pub: Permission denied
-> CWD pub/
<- 550 pub/: Permission denied
конфиг
---------------
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 30
# Set the user and group under which the server will run.
User nobody
Group nogroup
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~
# Normally, we want files to be overwriteable.
<Directory />
AllowOverwrite on
</Directory>
# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
#########################################################################
# #
# Uncomment lines with only one # to allow basic anonymous access #
# #
#########################################################################
<Anonymous ~ftp>
User ftp
Group ftp
### We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
### Limit the maximum number of anonymous logins
MaxClients 10
### We want 'welcome.msg' displayed at login, and '.message' displayed
### in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
### Limit WRITE everywhere in the anonymous chroot
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
---------------