.ftpaccess - подробное описание
Управление правами доступа FTP-пользователей
На серверах виртуального хостинга в качестве FTP-сервера установлен ProFTPD.
Установлены основные модули:
- mod_core.c
- mod_xfer.c
- mod_auth.c
- mod_ls.c
- mod_log.c
- mod_site.c
Для изменения прав доступа к директориям Вашей площадки для различных FTP-пользователей можно использовать конфигурационный файл .ftpaccess, структура и функциональность которого во многом похожа на конфигурационный файл Apache - .htaccess.
Область действия конфигурационных директив, отвечающих за права доступа, ограничена секцией Limit, при этом <Limit команда> определяет ограничения на использование объектов в директории (дополняет, но не заменяет права доступа файловой системы); в дополнение к командам протокола FTP можно использовать групповые имена:
- READ - все FTP-команды, связанные с чтением файлов (за исключением команд выдачи листинга содержимого директории), (RETR, SITE, SIZE, STAT);
- WRITE - все FTP-команды, связанные с созданием, записью или удалением файлов или директорий (APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD);
- DIRS — все FTP-команды, связанные с выдачей листинга содержимого директории (CDUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD, XPWD);
- ALL - все FTP-команды (включает в себя все три класса READ, WRITE и DIRS).
Блоки с групповыми именами имеют меньший приоритет; блок для внутренней области действия имеет больший приоритет, чем для внешней; при определении блока можно указывать несколько имен команд через пробел.
Управление доступом в области действия Limit
- Allow from all | none | хост | сеть - разрешение на действие, определенное в директиве Limit, в зависимости от шаблона IP адреса или доменного имени; область действия - Limit; по умолчанию - from all;
- AllowAll - явное разрешение доступа к области действия Limit, Anonymous или Directory.
- AllowGroup список-групп-через-запятую - для доступа к командам, описанным в данной области действия Limit, пользователь должен входить во все упомянутые группы (AND, возможно отрицание, задаваемое восклицательным знаком перед именем группы). На виртуальном хостинге FTP-пользователи одной площадки относятся к группе uXXXX, где uXXXX – номер площадки.
- AllowUser список-имен-через-запятую - для доступа к командам, описанным в данной области действия Limit, пользователь должен иметь указанные имена (AND, возможно отрицание, задаваемое восклицательным знаком перед именем).
- Deny from all | none | хост | сеть - запрет на действие, определенное в директиве Limit, в зависимости от шаблона IP адреса или доменного имени; область действия - Limit; по умолчанию - from none.
- DenyAll - синоним для команд «order deny,allow;deny from all».
- DenyGroup список-групп-через-запятую - запрещен доступ к командам, описанным в данной области действия Limit, пользователям, входящим во все упомянутые группы (AND, возможно отрицание, задаваемое восклицательным знаком перед именем группы)
- DenyUser список-имен-через-запятую запрещен доступ к командам, описанным в данной области действия Limit, для пользователей с указанным именем (AND, возможно отрицание, задаваемое восклицательным знаком перед именем).
- Order allow,deny | deny,allow - определяет последовательность проверки директив Allow и Deny, а также действия по умолчанию; allow,deny: проверяются директивы Allow, если совпадение найдено, то доступ предоставляется, иначе проверяются директивы Deny и если совпадение найдено, то доступ запрещается, иначе доступ предоставляется; deny,allow: проверяются директивы Deny и если совпадение найдено, то доступ запрещается, иначе проверяются директивы Allow и если совпадение найдено, то доступ предоставляется, иначе доступ запрещается; заметьте, что в Apache по умолчанию производятся противоположные действия!
Рассмотрим несколько примеров настройки FTP-доступа при помощи .ftpaccess.
- Пусть есть два FTP-пользователя площадки: uXXXX (доступ ко всей площадке) и uXXXX_2 (доступ к директории только одного домена domain.tld). Нам надо ограничить доступ второму пользователю только на чтение. В этом случае содержание .ftpaccess таково:
Файл .ftpaccess следует поместить в директории domain.tld, его действие будет распространяться на все поддиректории. Кроме этого, для пользователя uXXXX_2 надо разрешить запись в директорию domain.tld/tmp, тогда в директории domain.tld/tmp надо поместить .ftpaccess противоположного содержания:<Limit write> DenyUser uXXXX_2 </Limit>
<Limit write> AllowUser uXXXX_2 </Limit>
- Пусть помимо основного есть два FTP-пользователя площадки: uXXXX_1 и uXXXX_2, где uXXXX – номер площадки. На площадке расположено 4 домена – domain1.tld, domain2.tld, domain3.tld, domain4.tld. Каждому FTP-пользователю нужен доступ только к двум доменам, остальные ему полностью недоступны (директории «запрещенных» доменов не видны). Тогда оба пользователя имеют доступ ко всей площадке, а в директории доменов создаем файлы .ftpaccess следующего содержания:
где uXXXX_Y – имя того пользователя, которому разрешен доступ в текущую директорию.<Limit ALL> AllowUser uXXXX_Y Deny All </Limit>
Также важно отметить, что пользователь имеет доступ к просмотру и копированию файла .ftpaccess, но создать или удалить его не возможно. А после создания или изменения конфигурационного файла, ограничения начнут действовать только для новых FTP-сессий.
По теме FTP
настройка, веб-интерфейс, вирус, диагностика, дополн. FTP, пароль, winscp