есть 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>---------------
выдержка из FAQ, поставляемого с proftpd:15. Why doesn't Anonymous ftp work (550 login incorrect)?
Things to check
Check the following first:
Make sure the user/group you specified inside the <Anonymous> block actually exists. This must be a real user and group, as it is used to control whom the daemon runs as and authenticates as.
If RequireValidShell is not specifically turned off, make sure that your "ftp user" (as specified by the User directive inside an <Anonymous> block), has a valid shell listed in /etc/shells. If you do not wish to give the user a valid shell, you can always use "RequireValidShell off" to disable this check.
If UseFtpUsers is not specifically turned off, make sure that your "ftp user" is not listed in /etc/ftpusers.
file://localhost/usr/local/share/doc/proftpd/faq.html#AEN673
Итого, добавь
RequireValidShell off
и будет тебе счастье
не прокатило...
логинется он и раньше позволял
он не даёт в это папку зайти....
>не прокатило...
>логинется он и раньше позволял
>он не даёт в это папку зайти....
===================================
Umask 022
MaxInstances 30
User nobody
Group nogroup
UseReverseDNS off
IdentLookups off
<Limit LOGIN>
DenyAll
</Limit>
<Anonymous /home/ftp>
User ftp
Group ftp
UserAlias anonymous ftp
AnonRequirePassword off
RequireValidShell off
<Limit LOGIN>
AllowAll
</Limit>
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
<Directory incoming>
<Limit READ WRITE>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
</Anonymous>
====================================
кусок рабочего конфига для работы только с пользователем anonymous
проверь еще права на pub на всякий случай, мот там че не то