Какво е .ftpaccess?
Файлът .ftpaccess служи за конфигурация на FTP сървъра ProFTPD и чрез него могат да бъдат променяни редица функции на сървъра. Файлът задължително започва със знака точка и може да бъде създаден лесно в раздел "Файлове" на Контролния панел.
За да свалите локално конфигурационния файл, използвайте FTP програма и след това можете да го редактирате с текстов редактор. Имайте предвид, че повечето FTP програми не показват по подразбиране скрити файлове и такива, които започват с точка. За да видите .ftpaccess файловете, е нужно да активирате функцията "Show Hidden Files" в настройките.
За какво служи директивата Limit?
Директивата "Limit" позволява ограничиването и позволяването на достъпа до определени FTP команди в дадена директория. Ако искате да контролирате достъпа в няколко директории/поддиректории, трябва да добавите .ftpaccess във всяка от тях.
По-долу можете да откриете списък с групите команди, най-използваните FTP команди и кратко описание за тях:
ALL включва READ, WRITE и DIRS командните групи (всички FTP команди). Тази командна група има най-малък приоритет от всички останали - тя няма да презапише "Limit" директива, която е зададена от друга командна група като например "DIRS".
READ включва всички FTP команди, които са свързани с четенето на файлове (не се включва показването на директории):
RETR (RETRieve) позволява изтеглянето на файлове от сървъра.
SITE CHMOD (CHange MODe) позволява промяната на правата за достъп (permissions) до файлове и директории.
SIZE позволява виждането информация за големината на файлове.
STAT (STATus) позволява показването на информация за FTP сървъра и връзката.
WRITE включва FTP команди за писане, създаване и изтриване на файлове и директории:
APPE (APPEnd) позволява добавянето на съдържание от един файл в друг.
DELE (DELEte) позволява изтриването на файлове и директории.
MKD/XMKD (MaKe Directory) позволява създаването на нови директории.
RMD/XRMD (ReMove Directory) позволява изтриването на директории.
RNTO (ReName TO) позволява преименуването на файлове/директории. Тази команда се използва в комбинация с FTP командата RNFR.
STOR (STORe) позволява качването на файлове на сървъра.
DIRS включва следните FTP команди, свързани с показването на инфомация за директории:
CDUP/XCUP (Change Directory UP) позволява навигирането до горната директория на текущата.
CWD/XCWD (Change Working Directory) позволява промяната на текущата директория.
LIST/NLST (LIST/Name LiST) позволява показването на списък с файловете в директория.
MDTM (MoDification TiMe) позволява показването на информация за датата на промяна на файлове.
PWD/XPWD (Print Working Directory) позволява показването на текущата директория.
RNFR (ReName FRom) позволява преименуването на файлове/директории. Тази команда се използва в комбинация с FTP командата RNTO.
Повече информация относно "Limit" директивата са налични в официалната документация на ProFTP.
Сигурност
Съветваме Ви да използвате винаги следния код в началото на Вашите .ftpaccess файлове:HideFiles (\.ftpaccess|\.htaccess|\.htpasswd)$ user !alloweduser<Limit ALL>IgnoreHidden on</Limit>По този начин Вашите .ftpaccess, .htaccess и .htpasswd файлове няма да могат да се виждат и да бъдат променяни през FTP освен от alloweduser (заместете alloweduser с Вашето FTP потребителско име, чрез което желаете да виждате и променяте по-горе изброените файлове).След като създадете .ftpaccess файл, Ви съветваме да промените правата му за достъп от секцията Файлове в Контролния панел до 0600 за максимална сигурност, а и за да не бъде достъпен по HTTP.
Полезни примери
По-долу можете да откриете няколко примера за употреба на .ftpaccess файл:
Блокиране на FTP достъп• от определени IP адреси или мрежи• отвсякъде (всички IP адреси и мрежи)• отвсякъде освен определени IP адреси и мрежи
Забраняване триенето на файлове и директории
Забраняване качването на файлове и създаването на директории• за всички без определени FTP потребители• смесена кофигурация
Позволяване само на качване на файлове
Забраняване на достъп до дадена директория за определени FTP потребители
Разрешаване на достъп само за определени FTP потребители
Позволяване на изтриването на файлове само от определени IP адреси или мрежи
Ограничаване промяната права за достъп за определени FTP потребители
1. Блокиране на FTP достъп
от определени IP адреси или мрежиЗа да блокирате FTP достъпа до директория от определени IP адреси (напр. 1.2.3.4) или мрежи (напр. всички IP адреси, започващи с 5.6.7), добавете следния блок с код към .ftpaccess файл в тази директория:<Limit ALL>Order allow,denyDeny from 1.2.3.4Deny from 5.6.7.</Limit>
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
отвсякъде (всички IP адреси и мрежи)Можете напълно да ограничите FTP достъпа до директория, добавяйки следния блок с код в .ftpaccess файл в директорията: <Limit ALL>Order allow,denyDeny from all</Limit>
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
отвсякъде освен определени IP адреси и мрежиЗа да ограничите FTP достъпа до директория за всички освен определени IP адреси (напр. 1.2.3.4) или мрежи (напр. всички IP адреси, започващи с 5.6.7), използвайте следния код в .ftpaccess файл в тази директория:<Limit ALL>Order allow,denyAllow from 1.2.3.4Allow from 5.6.7.Deny from all</Limit>Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
2. Забраняване триенето на файлове и директории
Ако желаете да забраните триенето на файлове и директории за всички потребители освен за един (напр. allowed_user), използвайте следния код в .ftpaccess файла на директорията:
<Limit DELE RMD XRMD>AllowUser allowed_userDenyAll</Limit>
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
3. Забраняване качването на файлове и създаването на директории
за всички без определени FTP потребителиАко желаете да позволите на всички FTP потребители да виждат съдържанието на директория, но да забраните качването на файлове и създаването на директории в нея за всички с изключение на два FTP потребителя (напр. allowed_user_1 и allowed_user_2), добавете следния блок с код в .ftpaccess файл в тази директория:<Limit WRITE>AllowUser allowed_user_1,allowed_user_2DenyAll</Limit>Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
смесена кофигурацияМожете да добавите FTP достъп до различни команди за различни FTP потребители, с което можете да създавате сложни конфигурации. Например:- един потребител (напр. allowed_user_1) с достъп за четене на файлове и разглеждане на директории, но без достъп за създаване на файлове и директории;- друг потребител (напр. allowed_user_2) без достъп за четене на файлове и разглеждане на директории, но с достъп за създаване на файлове и директории;- трети потребител (напр. allowed_user_3) с пълен достъп.Добавете следния код в .ftpaccess файл в директорията, където желаете да постигнете гореописаната конфигурация:<Limit READ>AllowUser allowed_user_1,allowed_user_3DenyAll</Limit><Limit WRITE>AllowUser alloweduser_2,allowed_user_3DenyAll</Limit>Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
4. Позволяване само на качване на файлове
Ако желаете да направите директория, където всички Ваши FTP потребители могат само да качват файлове без да могат да виждат съдържанието на дадената директория, добавете следния код в .ftpaccess файл в директорията:
<Limit ALL>DenyAll</Limit><Limit CDUP CWD XCWD XCUP PWD>AllowAll</Limit><Limit STOR STOU>AllowAll</Limit>
Директорията, съдържаща .ftpaccess файла няма да е видима, така че трябва да използвате някой от описаните по-долу начини, за да я достъпите:
Въведете пълния път до директорията, съдържаща .ftpaccess файла, ръчно във Вашия FTP клиент.
Настроите директорията, съдържаща .ftpaccess файла, за "начална" във Вашия FTP клиент.
Зададете директорията, съдържаща .ftpaccess файла, като главна (root) директория за FTP потребителите чрез раздел "FTP потребители" на хостинг Контролния Панел. Можете да намерите повече информация за този раздел в статията ни "FTP Manager".
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
5. Забраняване на достъп до дадена директория за определени FTP потребители
Ако желаете да забраните достъпа на определени FTP потребители (напр. restricted_user_1 и restricted_user_2) до дадена директория, използвайте следния код в .ftpaccess файл в съответната директория:
<Limit ALL>DenyUser restricted_user_1,restricted_user_2</Limit>
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
6. Разрешаване на достъп само за определени FTP потребители
За да позволите достъп до директория само за определени FTP потребители (напр. allowed_user_1 и allowed_user_2), трябва да добавите следния блок с код в .ftpaccess файл в директорията:
<Limit ALL>AllowUser allowed_user_1,allowed_user_2DenyAll</Limit>
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
7. Позволяване на изтриването на файлове само от определени IP адреси или мрежи
Ако желаете да позволите изтриването на файлове в директория само от определени IP адреси (напр. 1.2.3.4) и мрежи (напр. всички IP адреси, заповащи с 5.6.7), добавете следния код в .ftpaccess файл в тази директория:
<Limit DELE>Allow from 1.2.3.4Allow from 5.6.7.DenyAll</Limit>
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.
8. Ограничаване промяната права за достъп за определени FTP потребители
Можете да добавите парава за промяна на правата за достъп на файлове и директории в дадена директория само за определени FTP потребители (напр. allowed_user_1 и allowed_user_2), добавяйки този код в .ftpaccess файл в директорията:
<Limit SITE_CHMOD>AllowUser allowed_user_1,allowed_user_2DenyAll</Limit>
FTP потребителите (напр. allowed_user_1 и allowed_user_2) ще могат да променят правата за достъп на техните файлове и директории, а всички останали FTP потребители няма да могат променят правата за достъп на нито един файл или директория, дори и на тези, които са тяхна собственост.
Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.