Конфигурационный файл для ftpd
/etc/ftpd.conf
ЗОСРВ «Нейтрино»
В файле /etc/ftpd.conf
определены различные конфигурационные опции для ftpd, которые применяются после аутентификации соединения пользователя.
Каждый прошедший аутентификацию пользователь является членом класса (согласно определению в файле /etc/ftpusers), от которого зависит, какие записи в файле соответствуют данному пользователю. При синтаксическом анализе записей различают следующие специальные классы:
- all
- Соответствует любому классу.
- none
- Не соответствует ни одному классу.
Файл /etc/ftpd.conf
содержит набор строк, каждая из которых содержит конфигурационную директиву или комментарий, либо является пустой. Директивы, которые представленные в файле последними, переопределяют значения, заданные предыдущими директивами. Это позволяет использовать "групповые символы" для определения значений по умолчанию, после чего обеспечить переопределение на основе классов.
"\" – символ начала управляющей последовательности. Этот символ используется для экранирования символа комментария или, если он является последним символом в строке, – для распространения конфигурационной директивы на несколько строк. "#" – символ комментария. Все последующие символы до конца строки игнорируются (за исключением случаев, когда этот символ экранируется символом начала управляющей последовательности).
Команда STAT ftpd возвращает параметры класса для текущего пользователя в соответствии с файлом /etc/ftpd.conf
.
Каждая конфигурационная строка может выглядеть как одна из следующих:
- checkportcmd класс [off]
- Проверить, действительна ли команда PORT. Выполнение команды PORT завершается неуспешно, если указанный IP-адрес не соответствует параметрам соединения команды FTP или номер удаленного порта TCP меньше, чем значение
IPPORT_RESERVED
. Эта опция настоятельно рекомендуется к использованию, особенно в компаниях с высоким уровнем риска скрытых атак по FTP. Если аргумент класс принимает значение none или off, эта возможность отключается. - chroot класс [формат_пути]
- Указать корневой каталог, используемый chroot() при входе в систему. Имя каталога создается путем синтаксического анализа аргумента формат_пути. Можно использовать следующие управляющие последовательности:
Управляющая последовательность: | Описание: |
---|
%c | Имя класса |
%d | Основной каталог пользователя |
%u | Имя пользователя |
%% | Символ % |
Если аргумент формат_пути не задан или аргумент класс принимает значение none, каталогом по умолчанию для пользователей REAL (или основным каталогом для пользователей GUEST и CHROOT) является /
. - classtype класс тип
- Установить для типа класса значение тип, где аргумент тип принимает одно из следующих значений:
- CHROOT
- Пользователи, определенные функцией chroot() (в соответствии с /etc/ftpchroot). Функция chroot() выполняется после входа в систему.
- GUEST
- Гостевые пользователи (в соответствии с учетными данными пользователей anonymous и ftp). Функция chroot() выполняется после входа в систему.
- REAL
- Обычные пользователи.
- conversion класс суффикс [тип деактивация команда]
- Настроить автоматическое преобразование inline-файла. Если извлекаемый файл завершается суффиксом и существует реальный файл (без суффикса), вместо содержимого файла возвращается результат команды.
- суффикс
- Суффикс для инициирования преобразования.
- тип
- Список действительных типов файлов для преобразования. Допустимыми являются следующие типы: f (файл) и d (каталог).
- деактивация
- Файл, предотвращающий преобразование (если он существует). Имя файла "." препятствует выполнению этого действия (т.е. преобразование разрешено без ограничений).
- команда
- Выполняемая команда преобразования. Поскольку для выполнения команды используется функция execv(), первым словом должно быть полное путевое имя команды. Все инстанции слова %s в команде заменяются требуемым файлом (без суффикса).
Директивы преобразования, указанные в файле далее, переопределяют директивы преобразования с таким же суффиксом. - display класс [файл]
- Вывести содержимое файла (если он существует) при каждом переходе пользователя в другой каталог. Поддерживаются управляющие последовательности. Для получения дополнительной информации см. раздел "Display file escape sequences" ("Просмотр управляющих последовательностей файла" в разделе ftpd в документации по NetBSD).
Если аргумент файл не задан или аргумент класс принимает значение none, эта возможность отключается. - limit класс число [файл]
- Ограничить максимальное число параллельных соединений для класса значением число, где 0 указывает на отсуствие ограничений для соединений. Если предел превышен и аргумент файл определен, то пользователю выводится содержимое файла. Эта строка игнорируется, если аргумент класс имеет значение none или значение число не определено.
- homedir класс [формат_пути]
- Определить каталог, к которому следует перейти при входе в систему, и использовать его в качестве основного каталога пользователя для замены тильды в путевых именах и т.д. Синтаксический анализ аргумента формат_пути выполняется в соответствии с директивой chroot.
Если аргумент формат_пути не задан или переменная класс принимает значение none, то основной каталог по умолчанию является основным каталогом для пользователей REAL или каталогом /
для пользователей GUEST и CHROOT. - maxtimeout класс время
- Установить максимальный таймаут, запрашиваемый клиентом (значение по умолчанию – 2 часа). Этот период не может составлять меньше 30 секунд или соответствовать значению директивы timeout. Эта строка игнорируется, если аргумент класс принимает значение none или аргумент время не задан.
- modify класс [off]
- Если аргумент класс принимает значение none или указано значение off, необходимо отключить команды CHMOD, DELE, MKD, RMD, RNFR и UMASK. В противном случае эти команды следует включить.
- motd класс [файл]
- Вывести содержимое файла файл в качестве "сообщения дня"после входа в систему. Поддерживаются управляющие последовательности. Для получения дополнительной информации см. раздел "Display file escape sequences" ("Просмотр управляющих последовательностей файла" в разделе ftpd в документации по NetBSD).
Если аргумент файл не задан или аргумент класс принимает значение none, эта возможность отключается. - notify класс [fileglob]
- Уведомлять пользователя о любых файлах, соответствующих шаблону fileglob при каждом переходе пользователя в другой каталог. Если аргумент fileglob не определен или аргумент класс принимает значение none, эта опция не используется.
- passive класс [off]
- Если аргумент класс принимает значение none или off, пассивные соединения (PASV/LPSV/EPSV) не допускаются.
- portrange класс мин макс
- Установить диапазон номеров портов, используемых для порта пассивных данных. Значение макс должно быть больше значения мин, и оба эти значения должны находиться в интервале между
IPPORT_RESERVED
и IPPORT_ANONMAX
. - rateget класс скорость
- Установить максимальный коэффициент скорости входящей передачи (RETR) для класса с помощью аргумента скорость (в байтах в секунду). Если аргумент скорость принимает значение 0, коэффициент не определен. Можно использовать дополнительный суффикс, изменяющий интерпретацию аргумента скорость следующим образом:
- b – без изменений (необязательный суффикс).
- k – килобайт. Аргумент умножается на 1024.
- m – мегабайт. Аргумент умножается на 1048576.
- g – гигабайт. Аргумент умножается на 1073741824.
- rateput класс скорость
- Установить максимальный коэффициент скорости исходящей передачи (STOR) для класса с помощью аргумента скорость (в байтах в секунду). Синтаксический анализ аргумента скорость выполняется в соответствии с rateget.
- template класс [ссылочный_класс]
- Определить ссылочный_класс в качестве шаблона для класса. Все последующие ссылки на ссылочный_класс в директивах также будут применены к членам класса класс. Можно определить шаблон класса, что упростит определение других классов с общими атрибутами без необходимости дублирования операций. Можно определить только один шаблон. Если аргумент ссылочный_класс не задан, отключите шаблон для класса.
- timeout класс время
- Установить таймаут неактивности (значение по умолчанию – 15 минут). Этот период не может составлять меньше 30 секунд или превышать значение maxtimeout. Эта строка игнорируется, если аргумент класс принимает значение none или аргумент время не задан.
- umask класс значение_umask
- Установить для umask значение значение_umask. Эта строка игнорируется, если аргумент класс принимает значение none или аргумент значение_umask не задан.
- upload класс [off]
- Если аргумент класс принимает значение none или указано значение off, необходимо отключить команды APPE, STOR, STOU и изменить команды CHMOD, DELE, MKD, RMD, RNFR, UMASK. В противном случае эти команды следует включить.
Настройки по умолчанию
Используются следующие значения по умолчанию:
checkportcmd all
classtype chroot CHROOT
classtype guest GUEST
classtype real REAL
display none
limit all -1 # unlimited connections
maxtimeout all 7200 # 2 hours
modify all
motd all motd
notify none
passive all
timeout all 900 # 15 minutes
umask all 027
upload all
modify guest off
umask guest 0707
Базовые подсистемы ЗОСРВ «Нейтрино», NetBSD
/etc/ftpchroot, ftpd, ftpusers
Предыдущий раздел: Конфигурационные файлы