
 Използване на .ftpaccess
==========================


**1. Какво е .ftpaccess?**  
  
Файлът **.ftpaccess** служи за конфигурация на FTP сървъра ProFTPD и чрез него могат да бъдат променяни редица функции на сървъра. Файлът задължително започва със знака точка и може да бъде създаден лесно в секция Файлове на Контролния панел. За да свалите локално конфигурационния файл, използвайте FTP програма и след това можете да го редактирате с текстов редактор. Имайте предвид, че повечето FTP програми не показват по подразбиране скрити файлове и такива, които започват с точка. За да видите .ftpaccess файловете, е нужно да активирате функцията "Show Hidden Files" в настройките.  
  
**2. За какво служи директивата Limit?**

Директивата Limit има за цел да ограничи/позволи достъпа до определени FTP команди в даден контекст. Ето и по-важните FTP команди с описание:  
  




|  | **Команда** | **Значение** | **Употреба от страна на FTP клиента** |
| **READ** | RETR | **RETR**ieve | Използва се за трансфер на файлове от сървъра към клиента. |
| SITE CHMOD | **CH**ange **MOD**e | Използва се за промяна на правата за достъп до файлове и директории. |
| SIZE | **SIZE** | Използва се за информация за големината на файл. |
| STAT | **STAT**us | Използва се за показване на информация за връзката. |
|  |  |  |  |
| **WRITE** | APPE | **APPE**nd | Използва се за добавяне съдържанието на даден файл към края на друг. |
| DELE | **DELE**te | Използва се за изтриване на файл. |
| MKD / XMKD | **M**a**K**e **D**irectory | Използва се за създаване на нова директория. |
| RMD / XRMD | **R**e**M**ove **D**irectory | Използва се за изтриване на директория. |
| RNTO | **R**e**N**ame **TO** | Използва се заедно с RNFR за преименуване на файл/директория. |
| STOR | **STOR**e | Използва се за трансфер на файлове от клиента към сървъра. |
|  |  |  |  |
| **DIRS** | CDUP / XCUP | **C**hange **D**irectory **U**P | Използва се за промяна на текущата директория на една по-високо във файловата система. |
| CWD / XCWD | **C**hange **W**orking **D**irectory | Използва се за промяна на текущата директория. |
| LIST | **LIST** | Използва се за листване на файловете в дадена директория. |
| NLST | **N**ame **L**i**ST** | Използва се за листване на файловете в дадена директория. |
| MDTM | **M**o**D**ification **T**i**M**e | Използва се за показване на информация за датата на промяна на даден файл. |
| PWD / XPWD | **P**rint **W**orking **D**irectory | Използва се за показване на текущата директория. |
| RNFR | **R**e**N**ame **FR**om | Използва се заедно с RNTO за преименуване на файл/директория. |

Отделно са дефинирани и няколко групи, включващи по няколко команди с цел по-краткото задаване на Limit директиви (в горната таблица командите са групирани в командни групи):



| **Командна група** | **Включва** | **Значение** |
| READ | RETR, SITE CHMOD, SIZE, STAT | Всички FTP команди, които са свързани с четенето на файлове (не се включва листване на директории) |
| WRITE | APPE, DELE, MKD / XMKD, RMD / XRMD, RNTO, STOR | Всички FTP команди, които са свързани с писането, създаването и изтриването на файлове или директории. |
| DIRS | CDUP / XCUP, CWD / XCWD, LIST, NLST, MDTM, PWD / XPWD, RNFR | Всички FTP команди, които са свързани с листването на директории. |
| ALL | Командните групи**:READ**, **WRITE** и **DIRS** | Всички FTP команди (идентично на READ WRITE DIRS). Имайте предвид, че тази командна група има най-малък приоритет от всички останали - тя няма да презапише Limit директива, която е зададена от друга командна група като например DIRS. |

**3. Сигурност**  
  
Съветваме ви да използвате винаги следния код в началото на вашите .ftpaccess файлове:  
HideFiles (\.ftpaccess|\.htaccess|\.htpasswd)$ user !**alloweduser**  
<Limit ALL>  
IgnoreHidden on  
</Limit>По този начин вашите .ftpaccess, .htaccess и .htpasswd файлове няма да могат да се виждат и да бъдат променяни през FTP освен от alloweduser (заместете alloweduser с вашето FTP потребителско име, чрез което желаете да виждате и променяте по-горе изброените файлове).  
След като създадете .ftpaccess файл, ви съветваме да промените правата му за достъп от секцията Файлове в Контролния панел до **0600** за максимална сигурност, а и за да не бъде достъпен по **HTTP**.  
  
**4. Полезни примери**  
 **4.1**[Блокиране на достъпа от определени IP адреси или мрежи](https://www.icdsoft.com/bg/kb/view/10002/10335#41)  
**4.2**[Забраняване триенето на файлове и директории](https://www.icdsoft.com/bg/kb/view/10002/10335#42)  
**4.3**[Забраняване качването на файлове и създаването на директории](https://www.icdsoft.com/bg/kb/view/10002/10335#43)  
**4.4**[Позволяване само качването на файлове](https://www.icdsoft.com/bg/kb/view/10002/10335#44)  
**4.5**[Забрана за достъп на определени потребители до дадена директория](https://www.icdsoft.com/bg/kb/view/10002/10335#45)  
**4.6**[Достъп само на отделни потребители](https://www.icdsoft.com/bg/kb/view/10002/10335#46)  
**4.7**[Позволяване на триенето на файлове само от определени IP адреси](https://www.icdsoft.com/bg/kb/view/10002/10335#47)  
**4.8**[Ограничаване промяната на правата за достъп](https://www.icdsoft.com/bg/kb/view/10002/10335#48) **4.1****Блокиране на достъпа от определени IP адреси или мрежи [^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)****• Блокиране на достъпа от определени IP адреси**  
  
Ако искате да забраните достъпа от определени IP адреси (в примера 64.14.68.138 и 64.14.68.139), създайте .ftpaccess файл със следното съдържание:  
<Limit ALL>  
Order allow,deny  
Deny from 64.14.68.138  
Deny from 64.14.68.139  
</Limit>

Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни. **•** **Блокиране на достъпа от** **определена мрежа**Можете да забраните и цяла мрежа. За да блокирате например всички IP адреси, започващи с 64.14.68. (т.е. мрежата 64.14.68), използвайте следния код:  
<Limit ALL>  
Order allow,deny  
Deny from 64.14.68.  
</Limit>Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
• **Б****локиране на достъпа от всички IP адреси и мрежи**Ако желаете да забраните достъпа на всички от всеки адрес без изключение, използвайте следния код във вашия .ftpaccess файл:

<Limit ALL>  
Order allow,deny  
Deny from all  
</Limit>Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
• **Блокиране на достъпа от всички IP адреси и мрежи освен някои**  
  
Можете да позволите достъп по FTP само на определени IP адреси или мрежи. Например:  
<Limit ALL>  
Order allow,deny  
Allow from 64.14.68.138  
Allow from 64.14.68.139  
Deny from all  
</Limit>По този начин достъп до FTP сайта ви ще имат единствено IP адресите 64.14.68.138 и 64.14.68.139.  
Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
**4.2 Забраняване триенето на файлове и директории****[^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)**  
  
Ако желаете да забраните само триенето на файлове и директории за всички потребители освен за вашия, използвайте следния код във вашия .ftpaccess файл, където заместете alloweduser с името на вашия FTP потребител:

<Limit DELE RMD XRMD>  
AllowUser **alloweduser**  
DenyAll  
</Limit>Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
  
**4.3 Забраняване качването на файлове и създаването на директории****[^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)**  
  
• Сценарий: Желаете да забраните качването на файлове и създаването на директории на всички потребители освен двама (alloweduser1 и alloweduser2), т.е. искате в директорията да е позволено само четенето за останалите потребители.

Използвайте следния код:  
<Limit WRITE>  
AllowUser **alloweduser1**,**alloweduser2**  
DenyAll  
</Limit>• Сценарий:  
- alloweduser1 трябва да може само да чете файловете и съдържанието на директорията без да може да пише  
- alloweduser2 трябва да може само да качва нови файлове, да създава други директории в директорията и да разглежда съдържанието й без да може да чете файловете  
- alloweduser3 трябва да може всичко  
Използвайте следния код:  
<Limit WRITE>  
AllowUser **alloweduser3**,**alloweduser2**  
DenyAll  
</Limit>  
  
<Limit READ>  
AllowUser **alloweduser3**,**alloweduser1**  
DenyAll  
</Limit>Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
  
**4.4 Позволяване само качването на файлове****[^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)**  
  
Ако желаете да направите директория, където всички ваши FTP потребители могат само да качват файлове без да могат да виждат съдържанието на дадената директория, използвайте следния код:  
<Limit ALL>  
DenyAll  
</Limit>  
  
<Limit CDUP CWD XCWD XCUP PWD>  
AllowAll  
</Limit>  
  
<Limit STOR STOU>  
AllowAll  
</Limit>   
Имайте предвид, че чрез тази конфигурация ще е възможно презаписването на вече съществуващи файлове.  
Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.

**Важно**: Самата директория/поддомейн, в който сте поставили .ftpaccess файла, няма да може да се вижда и за да пишете в нея, е нужно да конфигурирате дадената директория като начална във вашия FTP клиент. Друго възможно решение представлява създаването на FTP потребители, чиято начална директория да е тази, за която искате горните правила да бъдат валидни, така че всеки един от тези потребители да влиза директно в тази директория без да е нужна допълнителна конфигурация.  
 **4.5 Забрана за достъп** **на определени потребители** **до дадена директория****[^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)**  
  
Ако желаете да забраните достъпа на определени FTP потребители до дадена директория, използвайте следния код, който запишете в .ftpaccess файла в съответната директория:  
<Limit ALL>  
DenyUser **username1**,**username2**  
</Limit>Моля, заместете username1, username2 и т.н. с потребителите, на които искате да забраните достъпа.   
Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
  
**4.6 Достъп само на отделни потребители****[^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)**  
  
Ако желаете да ограничите достъпа до някоя директория само до определени FTP потребители, използвайте следния код, който запишете в .ftpaccess файла в съответната директория:  
<Limit ALL>  
AllowUser **alloweduser1**,**alloweduser2**  
DenyAll  
</Limit>Моля, заместете alloweduser1, alloweduser2 и т.н. с потребителите, на които искате да позволите достъпа.   
Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
  
**4.7 Позволяване на триенето на файлове само от определени IP адреси****[^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)**  
  
Ако желаете да ограничите триенето на файлове в някоя директория само от определени IP адреси, използвайте следния код, който запишете в .ftpaccess файла в съответната директория:  
<Limit DELE>  
Allow from 64.14.68.138  
DenyAll  
</Limit>По този начин само FTP потребителите, които са се свързали с FTP сървъра от IP адрес 64.14.68.138 ще могат да трият файлове в дадената директория.  
Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.  
  
**4.8 Ограничаване промяната на правата за достъп****[^](https://www.icdsoft.com/bg/kb/view/10002/10335#up)**  
  
Ако желаете да ограничите промяната на правата за достъп до файлове в някоя директория само от определени потребители, използвайте следния код:  
<Limit SITE\_CHMOD>  
AllowUser **alloweduser1**,**alloweduser2**  
DenyAll  
</Limit>Моля, заместете alloweduser1, alloweduser2 и т.н. с потребителите, на които искате да позволите промяна в правата за достъп. Имайте предвид, че тези потребители ще могат да променят правата за достъп единствено, ако те са собствениците им, докато останалите потребители няма да могат да променят и правата за достъп на своите файлове.  
Поставете .ftpaccess файла във всяка директория/поддомейн, за който искате горните правила да бъдат активни.

