Поставил proftpd из репозитария.
Полный его конфиг выглядит по умолчанию так:
[root@gw sysconfig]# grep -v -E "#|^$" /etc/proftpd.conf
ServerName "ProFTPD server"
ServerIdent on "FTP Server ready."
ServerAdmin root@localhost
DefaultServer on
VRootEngine on
DefaultRoot ~ !adm
VRootAlias etc/security/pam_env.conf /etc/security/pam_env.conf
AuthPAMConfig proftpd
AuthOrder mod_auth_pam.c* mod_auth_unix.c
UseReverseDNS off
User nobody
Group nobody
MaxInstances 20
UseSendfile off
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
<IfDefine TLS>
TLSEngine on
TLSRequired on
TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem
TLSCipherSuite ALL:!ADH:!DES
TLSOptions NoCertRequest
TLSVerifyClient off
TLSLog /var/log/proftpd/tls.log
<IfModule mod_tls_shmcache.c>
TLSSessionCache shm:/file=/var/run/proftpd/sesscache
</IfModule>
</IfDefine>
<IfDefine DYNAMIC_BAN_LISTS>
LoadModule mod_ban.c
BanEngine on
BanLog /var/log/proftpd/ban.log
BanTable /var/run/proftpd/ban.tab
BanOnEvent MaxLoginAttempts 2/00:10:00 01:00:00
BanControlsACLs all allow user ftpadm
</IfDefine>
<Global>
Umask 022
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
</Global>
<IfDefine ANONYMOUS_FTP>
<Anonymous ~ftp>
User ftp
Group ftp
AccessGrantMsg "Anonymous login ok, restrictions apply."
UserAlias anonymous ftp
MaxClients 10 "Sorry, max %m users -- try again later"
DisplayLogin /welcome.msg
DisplayChdir .message
DisplayReadme README*
DirFakeUser on ftp
DirFakeGroup on ftp
<Limit WRITE SITE_CHMOD>
DenyAll
</Limit>
<Directory uploads/*>
AllowOverwrite no
<Limit READ>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
WtmpLog off
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth
ExtendedLog /var/log/proftpd/all.log ALL
</Anonymous>
</IfDefine>
[root@gw sysconfig]#
А вот ошибка которая показывается на клиенте во время попытки записать файл в uploads
150 Opening ASCII mode data connection for MLSD
Загрузка
Ожидание ответа сервера...
226 Transfer complete
TYPE I
200 Type set to I
PORT 192,168,10,2,11,91
200 PORT command successful
STOR telephone.txt
550 telephone.txt: Operation not permitted
OFFLINE6, error=0
----------
Connect to: (10.04.2011 19:13:01)
hostname=192.168.10.1
username=anonymous
startdir=/uploads
Методом вычисления была найдено что на запрет записи влияет секция:
<Limit WRITE SITE_CHMOD>
DenyAll
</Limit>
А конкретнее слово WRITE, как только оно здесь присутствует, сразу появляется ошибка.
Но ведь по идее запрет записи распространяется на корневую директорию, а вот на подпапки отдельные права, но как не пробовал не хочет работать, а как только удаляешь WRITE то сразу начинает писать.
Права на /var/ftp/uploads стоят в режиме ftp и 777
Подскажите, как правильно быть в этой ситуации, ведь когда разработчики писали конфиг они придерживались какой-то идеологии.