FTP-сервер работает в режиме суперсервера (запускается inetd), пользователи используются виртуальные (берутся из /etc/proftpd/ftp-users).
Корень FTP лежит в /srv/ftp, в /srv/ftp/public лежит корень для анонимов, в /srv/ftp/homes/$u лежат каталоги пользователей (они в chroot помещаются).
Конфиг такой:
Код: Выделить всё
ServerType inetd #standalone
ServerName "xxx"
DefaultServer on
ServerIdent on "FTP Service"
ServerAdmin hostmaster@xxx
IdentLookups off
MaxInstances 30
Port 21
PassivePorts 10000 19999
TimeoutSession 86400
UseReverseDNS off
PathDenyFilter "(^\.ftpaccess$)"
AllowFilter "^[-A-Za-z0-9_\.(),/]*$"
AllowForeignAddress off
AllowOverride off
AllowOverwrite on
RequireValidShell off
DefaultRoot ~
User nobody
Group nogroup
Umask 022
AuthUserFile /etc/proftpd/ftp-users
AuthGroupFile /etc/proftpd/ftp-groups
DebugLevel 4
SyslogLevel notice
TransferLog /var/log/proftpd/tranfer.log
SystemLog /var/log/proftpd/error.log
WtmpLog off
AccessGrantMsg "Access granted, welcome."
AccessDenyMsg "Access denied."
DisplayConnect /etc/proftpd/welcome.msg
DisplayLogin "Welcome, %U. Clock is %T."
DisplayQuit "Bye, %U. Clock is %T."
<Limit LOGIN>
Order Allow,Deny
Allow from 192.168.1.0/24
Deny from all
</Limit>
<Limit READ DIRS>
IgnoreHidden on
</Limit>
<Limit SITE_CHGRP SITE_CHMOD>
DenyAll
</Limit>
<Anonymous /srv/ftp/public>
User ftp
Group nogroup
UserAlias anonymous ftp
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
<Directory />
AllowOverwrite on
</Directory>
<Directory /srv/ftp>
UserOwner ftp
GroupOwner nogroup
<Limit WRITE>
Order Allow,Deny
AllowGroup "OR" root,admins
DenyAll
</Limit>
</Directory>
<Directory /srv/ftp/upload>
UserOwner ftp
GroupOwner nogroup
<Limit WRITE>
Order Allow,Deny
AllowGroup "OR" root,admins,users
</Limit>
</Directory>
<Directory /srv/ftp/homes/*>
UserOwner ftp
GroupOwner nogroup
<Limit WRITE>
Order Allow,Deny
AllowGroup "OR" root,admins,users
#DenyAll
</Limit>
</Directory>Файл ftp-users
Код: Выделить всё
...
user1:*:1000:2:User 1:/srv/ftp/homes/user1:/bin/false
user2:*:1001:2:User 2:/srv/ftp/homes/user2:/bin/false
...Сервер работает, на него можно зайти под пользователем или анонимом, забрать какие-нибудь файлы.
Но вот удалить файлы или залить на него не получается, дает ошибку доступа. В логах
dispatching PRE_CMD command 'DELE clients.html' to mod_core
dispatching PRE_CMD command 'DELE clients.html' to mod_core
dispatching CMD command 'DELE clients.html' to mod_core
AllowOverride denies all .ftpaccess files
error deleting '/clients.html': Permission denied
На все файлы/каталоги дан доступ 775, владельцем назначается ftp:nogroup.