ftpd через rc.d : Настройка демона ftpd во FreeBSD


rc.d-скрипт для запуска ftpd
Те, кто интересовался вопросом запуска ftpd под FreeBSD 6.0 и ниже, конечно знают, что для этого демона не предусмотрено запускающего скрипта (он появился в версии 6.1). Предполагается, что служба FTP может запускаться только через inetd. На сколько это разумно — судить не мне, но лично я не понимаю, почему я должен запускать и настраивать inetd+ftpd, если мне нужен только ftpd.

Обратите внимание, что ftpd до сих пор (сейчас текущая версия 7.2) неадекватно реагирует на локаль. Если вы пользуетесь стартовым скриптом от разработчиков FreeBSD, то настоятельно рекомендую вставить перед

run_rc_command "$1"

строчку

export LANG=C

Если у вас более старая версия, то для запуска ftpd можете использовать скрипт, аналогичный моему, который здесь и привожу. Далее речь идёт о FreeBSD 6.0.

Итак. В /etc/rc.d кладём файл ftpd следующего содержания:

#!/bin/sh
#
# $FreeBSD$
#

# PROVIDE: ftpd
# REQUIRE: LOGIN
# KEYWORD: shutdown

. /etc/rc.subr
name="ftpd"
rcvar=`set_rcvar`
load_rc_config $name
command="/usr/libexec/${name}"
pidfile="/var/run/${name}.pid"
ftpd_flags="-p ${pidfile} -D ${ftpd_flags}"
run_rc_command "$1"

(Обратите внимание, во FreeBSD 6.1 и более поздних скрипт для запуска ftpd уже есть, используйте его.)

Запуск ftpd
Теперь в /etc/rc.conf можно добавлять два параметра: ftpd_enable и ftpd_flags. Первый включает службу FTP, второй — задаёт дополнительные параметры командной строки.

Например, я пишу вот так:

ftpd_enable="YES"
ftpd_flags="-A"

Первая строка включает демона, вторая предписывает демону разрешать доступ только для анонимных пользователей.

Чтобы обеспечить анонимный доступ к системе, следует создать пользователя ftp. В man 8 ftpd есть подробные инструкции, как настроить этого пользователя, чтобы обеспечить максимальную безопасность.

При следующей загрузке системы вы увидите, что демон запустился:

Starting ftpd.

Кроме ключа -A существует ещё ряд полезных ключей.

Например, ключ -r запускает сервер в read-only режиме. Сервер перестаёт реагировать на любые команды, способные модифицировать файловую систему. Подробнее смотрите man 8 ftpd.

Ключ -m позволяет анонимному пользователю переписывать существующие файлы. Без этого ключа, если вы попытаетесь записать файл file поверх уже существующего файла с таким же именем, то получите два файла: file и file.1.

Кроме того, в параметре ftpd_flags не следует использовать ключи -D и -p — они подставляются rc-скриптом автоматически.


Комментарии запрещены.




Статистика