Есть proftpd c включенным анонимусом. В секции <Anonymous> в я вном виде разрешена запись в /incoming. В /usr есть директории пользователей, некоторые из них нужно открыть на чтение всем, некоторые только владельцу. Соответственно, создаётся секция <Directory>, в ней — AllowUser user1, DenyAll. Однако, это не работает на анонимуса, он может заходить во все директории и скачивать что угодно.
Для каждой директории создавать две записи — в <Anonymous> и в Global — очень плохой вариант, это лишняя, ненужная работа.
Итак, как запретить анонимуса в секции <Directory>?
Конфиг:
ServerName "Test FTP Server"
ServerType standalone
DefaultServer on
AllowStoreRestart on
Port 21
UseIPv6 off
MaxInstances 30
User ftpd
Group ftpd
DefaultRoot /var/ftp
AllowOverwrite on
<Limit SITE_CHMOD>
DenyAll
</Limit>
Include /etc/proftpd/modules.conf
LangPath /usr/share/locale
LangDefault en_US
Umask 000
<Anonymous /var/ftp>
<Limit LOGIN>
AllowAll
</Limit>
RequireValidShell off
AnonRequirePassword off
User ftp
Group ftp
UserAlias anonymous ftp
<Limit WRITE>
DenyAll
</Limit>
<Directory /var/ftp/incoming/*>
<Limit STOR WRITE>
AllowAll
</Limit>
</Directory>
</Anonymous>
<Directory /var/ftp/*>
<Limit STOR WRITE MKD>
DenyAll
AllowUser ftpadmin
</Limit>
</Directory>
<Directory /var/ftp/incoming/*>
<Limit STOR WRITE MKD>
AllowAll
</Limit>
</Directory>
<Directory /var/ftp/usr/ftptelo>
<Limit STOR RETR LIST CWD READ WRITE DIRS>
AllowUser ftptelo
DenyAll
</Limit>
</Directory>