Какво е .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 файл:

  1. Блокиране на FTP достъп
    от определени IP адреси или мрежи
    отвсякъде (всички IP адреси и мрежи)
    отвсякъде освен определени IP адреси и мрежи
  2. Забраняване триенето на файлове и директории
  3. Забраняване качването на файлове и създаването на директории
    за всички без определени FTP потребители
    смесена кофигурация
  4. Позволяване само на качване на файлове
  5. Забраняване на достъп до дадена директория за определени FTP потребители
  6. Разрешаване на достъп само за определени FTP потребители
  7. Позволяване на изтриването на файлове само от определени IP адреси или мрежи
  8. Ограничаване промяната права за достъп за определени FTP потребители

1. Блокиране на FTP достъп

  • от определени IP адреси или мрежи

    За да блокирате FTP достъпа до директория от определени IP адреси (напр. 1.2.3.4) или мрежи (напр. всички IP адреси, започващи с 5.6.7), добавете следния блок с код към .ftpaccess файл в тази директория:

    <Limit ALL>
    Order allow,deny
    Deny from 1.2.3.4
    Deny from 5.6.7.
    </Limit>

    Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.

  • отвсякъде (всички IP адреси и мрежи)

    Можете напълно да ограничите FTP достъпа до директория, добавяйки следния блок с код в .ftpaccess файл в директорията:

    <Limit ALL>
    Order allow,deny
    Deny from all
    </Limit>

    Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.

  • отвсякъде освен определени IP адреси и мрежи

    За да ограничите FTP достъпа до директория за всички освен определени IP адреси (напр. 1.2.3.4) или мрежи (напр. всички IP адреси, започващи с 5.6.7), използвайте следния код в .ftpaccess файл в тази директория:

    <Limit ALL>
    Order allow,deny
    Allow from 1.2.3.4
    Allow from 5.6.7.
    Deny from all
    </Limit>

    Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.

2. Забраняване триенето на файлове и директории

Ако желаете да забраните триенето на файлове и директории за всички потребители освен за един (напр. allowed_user), използвайте следния код в .ftpaccess файла на директорията:

<Limit DELE RMD XRMD>
AllowUser allowed_user
DenyAll
</Limit>

Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.

3. Забраняване качването на файлове и създаването на директории

  • за всички без определени FTP потребители

    Ако желаете да позволите на всички FTP потребители да виждат съдържанието на директория, но да забраните качването на файлове и създаването на директории в нея за всички с изключение на два FTP потребителя (напр. allowed_user_1 и allowed_user_2), добавете следния блок с код в .ftpaccess файл в тази директория:

    <Limit WRITE>
    AllowUser allowed_user_1,allowed_user_2
    DenyAll
    </Limit>

    Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.

  • смесена кофигурация

    Можете да добавите FTP достъп до различни команди за различни FTP потребители, с което можете да създавате сложни конфигурации. Например:
    - един потребител (напр. allowed_user_1) с достъп за четене на файлове и разглеждане на директории, но без достъп за създаване на файлове и директории;
    - друг потребител (напр. allowed_user_2) без достъп за четене на файлове и разглеждане на директории, но с достъп за създаване на файлове и директории;
    - трети потребител (напр. allowed_user_3) с пълен достъп.

    Добавете следния код в .ftpaccess файл в директорията, където желаете да постигнете гореописаната конфигурация:

    <Limit READ>
    AllowUser allowed_user_1,allowed_user_3
    DenyAll
    </Limit>

    <Limit WRITE>
    AllowUser alloweduser_2,allowed_user_3
    DenyAll
    </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_2
DenyAll
</Limit>

Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.

7. Позволяване на изтриването на файлове само от определени IP адреси или мрежи

Ако желаете да позволите изтриването на файлове в директория само от определени IP адреси (напр. 1.2.3.4) и мрежи (напр. всички IP адреси, заповащи с 5.6.7), добавете следния код в .ftpaccess файл в тази директория:

<Limit DELE>
Allow from 1.2.3.4
Allow 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_2
DenyAll
</Limit>

FTP потребителите (напр. allowed_user_1 и allowed_user_2) ще могат да променят правата за достъп на техните файлове и директории, а всички останали FTP потребители няма да могат променят правата за достъп на нито един файл или директория, дори и на тези, които са тяхна собственост.

Важно: Тъй като .ftpaccess файловете не работят рекурсивно, трябва да добавите отделен .ftpaccess файл във всички директории, където искате да приложите зададената настройка.