Часто задаваемые вопросы по настройке файла .ftpaccess
1. В результате неудачного редактирования файла .ftpaccess
полностью пропал доступ к хостингу по протоколу ftp. Как это можно
исправить?
Если доступ к .ftpaccess случайно или намеренно был запрещен, то данный
файл можно отредактировать через файловый менеджер в панели управления
или используя ssh.
2. Каким образом можно ограничить выполнение ftp команд с определенных IP адресов?
Это можно сделать при помощи директив Limit, Allow, Deny, Order, AllowAll, DenyAll.
Пример 1. Полностью запрещаем доступ всем, кроме клиентов с хоста 192.0.2.78 и из сети 192.0.3.0/24
<Limit ALL>
Allow 192.0.2.78
Allow 192.0.3.0/24
DenyAll
</Limit>
Пример 2. Запрещаем любую запись для всех, кроме клиентов с IP адресами 192.0.2.78 и 192.0.2.77:
<Limit WRITE>
Allow 192.0.2.78,192.0.2.77
DenyAll
</Limit>
3. Каким образом можно скрыть определенные файлы?
С помощью директивы HideFiles можно скрывать файлы, названия которых удовлетворяют заданному регулярному выражению:
HideFiles [!]regexp|"none" ["user"|"group" expression]
Пример 1. Скрыть файлы .ftpaccess и .htaccess для всех, кроме пользователя user0:
HideFiles ^\.(ftpaccess|htaccess)$ user mysite0
Пример 2. Скрыть конфигурационные файлы:
HideFiles \.conf$
4. Можно ли запретить изменение определенных файлов?
Директивы PathDenyFilter/PathAllowFilter позволяют запретить или разрешить модификацию файлов, определяемых регулярным выражением. Правила применяются к ftp командам DELE, MKD/XMKD, RMD/XRMD, RNFR, RNTO, STOR, STOU, а также к командам SITE CHGRP и SITE CHMOD. Если имя файла удовлетворяет регулярному выражению в PathDenyFilter,
то указанные выше операции над файлом запрещаются, в противном случае -
разрешаются. Если имя файла удовлетворяет регулярному выражению в PathAllowFilter,
то операции над этим файлом разрешаются, в противном случае -
запрещаются. Если используются обе директивы, то первой проверяется PathAllowFilter:
PathDenyFilter regexp
или
PathAllowFilter regexp
Пример 1. Запрещаем модификацию файлов .htaccess и .ftpaccess:
PathDenyFilter ^\.(ftpaccess|htaccess)$
5. Как изменить права доступа по умолчанию для загружаемых файлов и каталогов?
Необходимо воспользоваться директивой Umask:
Umask [ маска для файлов [ маска для каталогов ]]
Пример 1. Создавать файлы с правами 444:
Umask 222
Директивы .ftpaccess
Limit
Директива Limit задает блок, в котором
устанавливаются ограничения на выполнение определенных команд. В
качестве параметра указываются ftp команды или группы команд,
разделенные пробелами. Возможно использование следующих групп:
- ALL - все ftp команды
- DIRS - ftp команды: CDUP, CWD, LIST, MDTM, NLST, PWD, RNFR, STAT, XCUP, XCWD, XPWD
- LOGIN - ftp логин
- READ - ftp команды: RETR, SIZE
- WRITE - ftp команды: APPE, DELE, MKD, RMD, RNTO, STOR, STOU, XMKD, XRMD
Формат записи:
<Limit команда1 [ команда2 ...]>
</Limit>
Allow/Deny
Директивы задают список хостов или сетей, для которых соответственно разрешено/запрещено выполнение команды:
Allow|Deny ["from"] "all"|"none"|хост|сеть[,хост|сеть[,...]]
Примечание: указывайте в директивах Allow/Deny IP адрес, а не имя хоста.
Order
Директива Order задает последовательность, в которой проверяются директивы Allow и Deny. По умолчанию, порядок выполнения: allow, deny , то есть сначала проверяются директивы Allow. Если директива Allow явно задает разрешение для хоста, то директивы Deny не
проверяются, и ftp-клиенту разрешается выполнение команд. Если директива Allow явно не задает разрешение для хоста, то проверяется директива Deny, и если хост ей удовлетворяет, то выполнение команд запрещается, в противном случае - разрешается. Если директива Order определяет порядок: deny, allow , то сначала проверяются директивы Deny. Если к хосту применяются какие-либо запреты, то директива Allow не проверяется, и ftp-клиенту запрещается выполнение команд. Если ничего не запрещается, то проверяются директивы Allow. Если Allow явно задает разрешение для хоста, то ftp-клиенту разрешается выполнение команд, в противном случае - запрещается.
Формат записи:
Order allow,deny|deny,allow
AllowAll
Директива явно разрешает доступ к блоку <Limit> , используется по умолчанию.
DenyAll
Запрещает доступ, это аналог следующей комбинации директив:
Order Deny,Allow
Deny from all
DeleteAbortedStores
Удалять файлы, которые были загружены не до конца:
DeleteAbortedStores on
ListOptions
Скрывать файлы с именами, начинающимися с точки:
ListOptions "+a"
AllowOverwrite
Запретить перезапись существующих файлов:
AllowOverwrite off
|