Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Стандарт протокола передачи файлов через Интернет (FTP) описан в RFC959. Этот протокол определяет стандарт передачи файлов между удаленной компьютерной системой и локальной компьютерной системой. Вообще говоря, пользователи, передающие файлы, должны пройти аутентификацию, прежде чем они смогут войти на веб-сайт и затем получить доступ к файлам на удаленном сервере. Большинство FTP-серверов часто предоставляют общедоступную учетную запись GUEST, чтобы пользователи, у которых нет удаленного сервера, могли получить доступ к FTP-серверу.
Сеанс FTP обычно включает взаимодействие пяти элементов программного обеспечения.
пользовательский интерфейс | Предлагает пользовательский интерфейс и воспользоваться сервисом интерпретатора протоколов на стороне клиента |
---|---|
ИП клиента | Интерпретатор протокола клиента, который отправляет команды на машину протокола удаленного сервера и управляет процессом передачи данных клиента. |
СерверPI | Интерпретатор протокола сервера, реагирует на команды, выдаваемые машиной клиентского протокола, и управляет процессом передачи данных на стороне сервера. |
Клиентская верстка | Процесс передачи данных клиента, который отвечает за завершение связи с процессом передачи данных сервера и локальной файловой системой клиента. |
СервисDTP | Процесс передачи данных сервера, который отвечает за завершение связи с процессом передачи данных клиента и файловой системой на стороне сервера. |
в RFC 959, термин «пользователь» обычно используется для обозначения клиентов. RFC 959 определяет методы и спецификации взаимодействия между клиентPI и СерверPI. пользовательский Механизмы взаимодействия интерфейса с PI и DTP не являются частью стандарта протокола. PI и DTP часто реализуются в одном программном модуле.
В сеансе FTP,Всего будет два независимых сетевых подключения.,Один используется PI на обоих концах.,Другой состоит из обоих концовDTPиспользовал。PIСвязь между(control connection),DTPСвязь между(data connection)
Управление и подключение к данным с использованием TCP-сервисов
Обычно сервер FTO прослушивает порт номер 21, ожидая запросов на установление управляющего соединения. Выбор номера порта подключения данных зависит от команды на управляющем соединении. Обычно клиент отправляет управляющее сообщение, чтобы указать номер порта, который клиент прослушивает, и ждет, пока сервер отправит запрос на установление соединения для передачи данных.
Использование разных независимых соединений для передачи данных и передачи команд управления имеет следующие преимущества: два соединения могут выбирать разное подходящее качество обслуживания, например: для соединения управления требуется меньшее время задержки, а для соединения управления требуется более длительное время задержки. соединение для передачи данных. Большая пропускная способность данных, позволяющая избежать прозрачности и уклонения команд в потоке данных.
Когда передача устанавливается, она всегда инициируется клиентом в первую очередь. Однако отправителями данных могут быть как клиент, так и сервер. Помимо передачи файлов, запрошенных пользователем для загрузки, процесс передачи данных также устанавливается, когда клиент запрашивает структуру каталогов на стороне сервера.
При установке транспорта обычно необходимо указать четыре свойства:
В практических приложениях больше используются только ASCII и форматы изображений.
Это свойство редко используется на практике.
Структура страницы редко встречается на практике. Структуры записи также не очень распространены. Того же эффекта можно добиться, используя тип файла ASCII для текстовых файлов.
На практике обычно используется только потоковый режим. Сжатие обычно достигается за счет использования различных других служебных программ.
Когда передача установлена, клиент обычно указывает один или несколько атрибутов, описанных ранее. Если сервер не может поддерживать опцию, сервер ответит клиенту сообщением об ошибке и не имеет механизма согласования.
FTP предоставляет достаточно команд, позволяющих пользователям устанавливать соединения с удаленными пользователями и получать доступ к удаленным файловым системам.
Команды передаются в строковом формате NVT ASCII. Каждая команда начинается с трех или четырех заглавных символов NVT ASCII, за которыми следуют параметры опции и пара CR/LF, обозначающая конец команды.
Ответ состоит из трех цифр NVT ASCII и сообщения с опциями.
Длинный ответ может состоять из нескольких сообщений, в первом из которых после трех цифр стоит тире, а в последнем тире нет. Среднее сообщение не обязательно должно содержать три цифры, но если оно содержит, то требуется тире.
Ниже приведен список всех команд. Команды со звездочкой обычно используются редко, поэтому в конкретных реализациях они часто не поддерживаются.
String | Meaning |
---|---|
ABOR | Прервать передачу |
*ACCT | Некоторые системы связывают учетные записи и пользователей с файловыми системами. |
*ALLO | Выделите место для переносимых файлов. Параметры переносятся позже для определения количества байтов. |
*APPE | Добавить файл к уже существующему файлу |
CDUP | Измените текущий каталог на родительский каталог в удаленной системе. |
CWD | Изменить рабочий каталог удаленной системы |
DELE | Удалить файлы из удаленной системы |
HELP | Прочтите справочную информацию сервера, например: список поддерживаемых команд. |
LIST | Отправьте список имен файлов в текущем рабочем каталоге при вновь установленном соединении для передачи данных. |
MKD | Создать каталог |
MODE | Укажите режим передачи. Могут передаваться следующие параметры: S, B или C. |
NLST | Отправляет «полный» список текущего каталога при вновь установленном соединении для передачи данных. |
NOOP | Никакой операции по предотвращению разрыва соединения |
PASS | Укажите пароль для входа пользователя, который должен следовать сразу за командой USER. |
*PASV | Укажите процесс передачи данных сервера для прослушивания запроса на установление соединения для передачи данных клиента. |
PORT | Укажите номер порта, на котором клиент прослушивает соединения, установленные сервером. |
PWD | Отобразить имя текущего рабочего каталога сервера. |
QUIT | Выйдите из системы и прекратите соединение |
*REIN | Выполните повторную инициализацию, выйдите из системы, но не отключайтесь, затем необходимо ввести новую команду USER. |
*REST | Перезапустить передачу с идентификатора на сервере |
RETR | Получить файл из удаленной системы |
RMD | Удалить каталог |
*RNFR | Указывает старый путь к файлу, которому нужно дать имя, за которым следует команда RNTO. |
*RNTO | Указывает новый путь к файлу, которому будет присвоено имя. |
*SITE | Услуги, предоставляемые серверами конкретного сайта |
*SMNT | Загрузка структуры, предоставление удаленного системного пути к структуре файловой системы. |
*STAT | информация о статусе |
STOR | Загрузите файл на сервер, перезаписав файл, если он уже существует. |
*STOU | Загрузите файл на сервер, не перезаписывая существующие файлы. |
STRU | Укажите структуру файла, параметр может быть F, R или P. |
*SYST | Сообщает тип операционной системы удаленной системы |
TYPE | Укажите тип файла. Параметры могут быть A, E, I, L. Обычно используются только TYPE A и TYPE I. |
Ответ на команду подключения управления имеет следующий вид:
Type | Description |
---|---|
1yz | Активный предварительный ответ, дождитесь следующего ответа, прежде чем отправлять следующую команду |
2yz | Активно отвечать последним, последняя команда завершается успешно |
3yz | Активный промежуточный ответ, необходимо отправить еще одну команду |
4yz | Временно пассивный ответ, запрошенное действие не может быть выполнено в данный момент, но вы можете попробовать еще раз |
5yz | Постоянно пассивный ответ: запрошенное действие не может быть выполнено и не должно повторяться. |
Цифра «y» кодирует дополнительную информацию.
Digit | Meaning |
---|---|
0 | синтаксическая ошибка |
1 | информация |
2 | статус соединения |
3 | Аутентификация и учет |
4 | бронировать |
5 | Состояние файловой системы файла |
Вот некоторые типичные сообщения:
Number | Meaning |
---|---|
125 | Соединение для передачи данных открывается и начинается передача. |
200 | Команда ОК |
331 | Имя пользователя ОК Необходимо ввести пароль |
425 | Невозможно открыть соединение для передачи данных |
452 | Ошибка записи файла |
500 | синтаксическая ошибка-неузнаваемая судьба |
Подробности можно найти в RFC.
wu-FtpdОфициальный авторитетный адрес сайта::http://www.wu-ftpd.org。
В настоящее время в среде Linux существует множество программ ftp-серверов, но наиболее распространенным из них по-прежнему является сервер wu-Ftpd. Здесь мы в основном обсуждаем установку и настройку программного обеспечения.
Вообще говоря, при установке Linux сервер wu-ftpd устанавливается автоматически по умолчанию, но иногда для определенных нужд необходимо самостоятельно переустановить серверное программное обеспечение. Существует два способа установки wu-Ftpd: один — установить пакет выпуска в формате RPM, другой — самостоятельно скомпилировать и сгенерировать Ftp-сервер.
rpmПакет можно найти по адресуhttp://rpmfind.net/linux/RPM/WByName.htmlдоступен для скачивания,Установка через пакет rpm очень проста.,Просто следуйте простым шагам ниже, чтобы завершить его.,Предположим, что загруженный пакет RPM хранится в /tmpОглавление:
#cd /tmp #rpm -ivh wu-ftpd-2.6.0-9.i386.rpm
Сжатый исходный код можно найти по адресуftp://ftp.wu-ftpd.org/pub/wu-ftpd/Убирайся。Здесь мы используем новейшие2.6.0Возьмите пример, чтобы проиллюстрировать, как скомпилировать и установитьwu-ftpd。
1. Разблокируйте исходный код
1) Скопируйте сжатый исходный код в /usr/src.
#cp wu-ftpd.2.6.0.tar.gz /usr/src
2) Распакуйте сжатый файл:
#tar xvfz wu-ftpd.2.6.0.tar.gz #cd wu-ftpd-2.6.0
2. Введите команду «./build xxx». Здесь можно указать компилятор языка C: «./build CC=yyy xxx» yyy относится к другим компиляторам, используемым для замены «cc». Для компилятора gcc в среде Linux команда должна быть следующей: «./build CC=gcc xxx».
#build CC=gcc lnx
xxx может принимать следующие значения: gen: общий make (его нужно скопировать при портировании в систему опыта) AIX: IBM AIX вспомогательный:AU/X бди: BSD/ОС бсд: БСД декабрь: DEC Unix 3.X du4: DEC Unix 4.X или новее. Дин: Диникс fbs: FreeBSD 2.0 или новее. Привет: Hitachi Unix hpx :HP-UX lnx: Linux (проверено на версии 2.0.30) nbs: NetBSD 1.X nx2: NeXTstep 2.x nx3: NeXTstep 3.x ОСФ: ОСФ/1 ОС: Mac OS X птх: ??? sco: SCO Unix 3.2v4.2/SCO OpenServer 5 SGI: SGI Irix 4.0.5a sny : Sony NewsOS соль: SunOS 5.x/Solaris 2.x s41: SunOS 4.1.x ульт: Ultrix 4.x uxw: UnixWare 1.1 или новее. clean : Очистка объектных файлов и т. д., чтобы уменьшить место на диске после сборки. установить: Установить ftpd
Copying Makefiles.
Linking src/config.h
Making support library. gcc -O3 -fomit-frame-pointer -fno-strength-reduce -pipe -c strcasestr.c gcc -O3 -fomit-frame-pointer -fno-strength-reduce -pipe -c authuser.c gcc -O3 -fomit-frame-pointer -fno-strength-reduce -pipe -c snprintf.c rm -f libsupport.a ar cq libsupport.a strcasestr.o authuser.o snprintf.o ranlib libsupport.a : : : : : : : : :
После успешной компиляции будут сгенерированы следующие исполняемые файлы:
ftpd программа FTP-сервера ftpshut Программа для отключения FTP-демона ftpcount Программа подсчета, которая отображает количество людей, вошедших в систему через ftp. ftpwho Проверка текущего состояния подключения FTP-сервера. Это похоже на команду системы who, но она проверяет только пользователей, вошедших в систему через FTP. ckconfig Проверьте правильность настроек FTP ftprestart Перезапустить ftp-сервер privatepw Изменятьwu_ftpdФайл группового доступаинформация
3. Если вы только обновляетесь на новую версию, вам следует сначала сделать резервную копию всех старых файлов конфигурации системы. В противном случае эти файлы конфигурации будут перезаписаны. Чтобы адаптироваться к вашим собственным потребностям, вам следует отредактировать образец файла конфигурации в соответствии с вашими требованиями. Конкретные требования к файлу конфигурации см. в следующем содержимом.
4. Как суперпользователь введите команду «./build install».
#build install
installing binaries. install -c -o bin -g bin -m 110 bin/ftpd /usr/sbin/in.ftpd install -c -o bin -g bin -m 111 bin/ftpshut /usr/bin/ftpshut install -c -o bin -g bin -m 111 bin/ftprestart /usr/bin/ftprestart install -c -o bin -g bin -m 111 bin/ftpcount /usr/bin/ftpcount install -c -o bin -g bin -m 111 bin/ftpwho /usr/bin/ftpwho install -c -o bin -g bin -m 111 bin/privatepw /usr/bin/privatepw installing manpages. install -c -o bin -g bin -m 444 doc/ftpcount.1 /usr/man/man1/ftpcount.1 install -c -o bin -g bin -m 444 doc/ftpwho.1 /usr/man/man1/ftpwho.1 install -c -o bin -g bin -m 444 doc/ftpaccess.5 /usr/man/man5/ftpaccess.5 install -c -o bin -g bin -m 444 doc/ftpconversions.5 /usr/man/man5/ftpconversio5 install -c -o bin -g bin -m 444 doc/ftphosts.5 /usr/man/man5/ftphosts.5 install -c -o bin -g bin -m 444 doc/xferlog.5 /usr/man/man5/xferlog.5 install -c -o bin -g bin -m 444 doc/ftpd.8 /usr/man/man8/ftpd.8
5. Отредактируйте файл «/etc/inetd.conf», чтобы он указывал на новый демон ftpd. В большинстве случаев этот шаг не нужен, поскольку во время установки сборки новая копия демона перезапишет старый демон. Если вы хотите использовать расширенные функции расширения ftpd, вам следует добавить опцию «-a» в конце этой строки.
Демон ftpd обычно может принимать следующие параметры или не принимать никаких параметров:
-d параметр отладки, при возникновении ошибки в демоне ftpd ошибка будет записана в файл системной записи /usr/adm/syslog -l Записывайте информацию о каждом сеансе FTP в /usr/adm/messages. -t Установите, как долго FTP-клиент будет автоматически отключаться при отсутствии операций. Этот параметр определяет время ожидания, например. -t 600 Указывает, что если клиент Терминал автоматически отключится, если не будет выполнено никаких действий в течение 10 минут подряд. Значение по умолчанию — 15 минут. -a Используйте содержимое файла конфигурации ftpaccess для более детальной и сложной настройки ftpd. -A Не использовать ftpaccess Настройки файла конфигурации,Значение по умолчанию:-A -i Когда клиент загружает файл, он записывается в файл xferlog. -L Все команды, используемые при подключении пользователя к ftp-серверу, записываются в /usr/adm/messages.
6. Скопируйте файлы tar, gzip, Gunzip, Compress, Uncompress и другие файлы в «~ftp/bin» и скопируйте «ls» в «~ftp/bin/ls».
7. Если это первая установка, используйте программу «ckconfig», чтобы найти различные каталоги хранения файлов конфигурации ftpd: ftpconversions, ftpusers и ftpgroups. В каталоге «doc/examples» находятся файлы примеров. «ckconfig» — это исполняемая программа, которая гарантирует устранение любых проблем, обнаруженных программой.
Вообще говоря, если wu-ftpd правильно скомпилирован и установлен, сервер может работать нормально. Пользователи могут подключаться к серверу из различных систем с помощью команд FTP.
Этот файл конфигурации является наиболее важным файлом конфигурации FTP-сервера. Настройки этого файла определяют, может ли FTP работать нормально, а также настройки многих прав доступа. Как показано в следующем примере: класс все реально,гость,аноним *
limit all 10 Any /etc/msgs/msg.dead
readme README* login readme README* cwd=*
message /welcome.msg login message .message cwd=*
compress yes all tar yes all
log commands real log transfers anonymous,real inbound,outbound
shutdown /etc/shutmsg
email user@hostname
Ниже приводится подробное описание каждой директивы в файле настроек:
Инструкции: loginfailsn Если вы введете пароль n раз, соединение будет автоматически разорвано.
Инструкции: автогруппа Название группы категория [<категория> …] Если анонимный пользователь принадлежит к какому-либо классу параметра категории, FTP-сервер Название выполнит вызов setegid(), чтобы сделать его принадлежащим этому классу. Это группа, определенная группой. Это сделано для того, чтобы предоставить определенным анонимным пользователям доступ к файлам, которые доступны только этой группе и владельцу. Название группа должна быть допустимой группой, определенной в /etc/group.
поручить: class Имя класса категория(real、guest、anonumous) IP-адрес Эта инструкция предназначена для установки категории имени пользователя FTP-сервера. Пользователей FTP-серверов можно разделить на следующие три типа: real Пользователь с легальной учетной записью на FTP-сервере; guest Дополнительно определите некоторые конкретные группы пользователей; anonymous анонимный пользователь;
Пример: class outworld real,guest,anonymous * Определите класс с именем outworld, который содержит три типа пользователей: настоящие, гостевые и анонимные. Этот класс используется в следующих инструкциях. Среди них «*» — это часть IP-адреса определения класса, которая представляет хост, используемый в сети. Это означает, что любому хосту разрешено подключаться к FTP-серверу. Если вы хотите установить определенные разрешения на хосте, который обращается к FTP, вы можете сделать это: class friend real,guest,anonymous *.linuxaid.com.cn 202.102.13.* Относится к определению дружественного класса, который взят из *.linuxaid.com.cn. и 202.102.13.* имеют особые настройки разрешений при доступе к FTP-серверу.
поручить: limit категория Количество человек время имя файла Эта директива устанавливается, когда определенному классу разрешено подключаться к FTP-серверу в определенном количестве. количество человек ограничьте и укажите при подключении человек превышает лимит, и информация о сообщении отображается пользователю при подключении последующих пользователей.
Пример: limit local 20 Any /tmp/message/msg.toomany В приведенном выше примере локальный класс ограничивается только 20 людьми, которые могут одновременно подключаться к одному и тому же FTP-серверу онлайн. Если их больше 20, будет отображено содержимое файла /tmp/message/msg.toomany. limit outworld 100 MoTu|Any 2200-0800 /tmp/message/msg.limit В этом примере пользователи категории внешнего мира ограничивают доступ к FTP-серверу только с 22:00 в понедельник и вторник до 8:00 следующего утра, и они подключаются к Количество в одно и то же время. человек не может превышать 100 человек. Если количество человек превышает 100, будет отображено содержимое файла /tmp/message/msg.limit. Содержимое /tmp/message/msg.limit: извини! Этот сервер разрешает доступ анонимным пользователям в течение всего дня в понедельник, вторник и другие дни с 22:00 до 8:00 следующего утра. Текущее время - %T, и в настоящее время доступ разрешен только %M анонимным пользователям. % N пользователей обращаются к серверу. Пожалуйста, получите доступ к этому FTP-серверу в соответствующем месте, спасибо! %M — это переменная, представляющая количество, которое разрешено для одновременного подключения. Верхний предел человека: FTP-сервер может автоматически заменить эту переменную ранее установленным значением. Другие разрешенные переменные включают: %T Местное текущее время; %F Оставшееся пространство раздела, на котором находится CWD, в КБ. Но эта переменная поддерживается не всеми системами. %C текущий рабочий каталог; %E Адрес электронной почты системного администратора, указанный в файле /etc/ftpaccess; %R Имя удаленного хоста; %L локальное имя хоста; %U Имя пользователя, указанное при входе в систему; %N Количество пользователей, подключенных в настоящее время к этой категории; Используя эти параметры, вы можете редактировать файл подробного описания, который позволяет пользователям понять текущее использование ресурсов сервера.
поручить: readme Документация инструкция Когда пользователь выполнит указанную «инструкцию», система автоматически отобразит установленную Документацию; Пример: readme README* login Когда пользователь выполняет действие входа в систему, пользователю будет отображено содержимое файла, начинающееся с README. readme README* cwd=* Указывает, что когда пользователь переключает каталоги (cwd), пользователю будет отображаться содержимое файла, начинающееся с README. Обычно README* должно представлять собой описание файлов в каталоге, чтобы вошедшие в систему пользователи могли четко знать, какие файлы хранятся в каталоге;
поручить: message имя файла инструкция Чтобы, когда пользователь выполняет определенную «инструкцию», система отображает пользователю указанное содержимое файла; Пример: message /msg.welcome login Указывает, что при входе пользователя в систему содержимое /tmp/message/msg.welcome будет автоматически отображаться пользователю. Обратите внимание, что /msg.welcome здесь относится к файлу msg.welcome в корневом каталоге ftp, т.е. /home/ftp/msg.welcome. message /welcome cwd=* Указывает, что когда пользователь переключается в другой каталог, если в нем есть файл msg.welcome, он будет отображаться пользователю.
поручить: compress (yes/no) категория Установите, пользователи какой категории могут использовать сжатую функцию; Пример: compress yes local outworld разрешить локальный и внешний мир две категории Пользователь использует функцию сжатия
поучить: смола (да/нет) категория Укажите, какие пользователи категории могут использовать tarФункция;
поручить: passwd-check (none/trivial/rfc822) (enforce/warn) Установите пароль при анонимном входе пользователя на сервер: none Это значит, что пароль не будет проверен и вы сможете войти под любым паролем; trival Указывает, что вы можете войти в систему, если пароль содержит @; rfc822 Указывает, что пароль должен соответствовать формату электронной почты, указанному в rfc822, прежде чем вы сможете войти в систему. Например: webmaster@linuxaid.com.cn. enforce Указывает, что введенный пароль не соответствует указанному формату и вход в систему невозможен; warn Указывает, что введенный пароль не соответствует указанному Формат Показать предупреждениеинформация,Но вход по-прежнему разрешен;
поручить: log commands категория(read/guest/anonumous) Когда эти пользователи войдут в систему, используемые операции будут записаны в файле /usr/adm/xferlog.
поручить: log transfer категория(read/guest/anonumous) (inbound/outbound) Установите указанную категорию пользователя, которая будет записываться в /usr/adm/xferlog при загрузке или скачивании. Пример: log transfer anonymous,real inbound,outbound Когда анонимный или реальный пользователь входит в систему, операции загрузки и скачивания будут записываться в файл /usr/adm/xferlog.
поручить: shutdown имя файла За временем закрытия FTP-сервера может следовать имя указанный в файле указанный в файле,Как только наступит назначенное время,Невозможно войти на FTP-сервер,Только удалив этот файл, можно восстановить FTP-сервер. Формат файла можно создать с помощью команды ftpshut.
поручить: delete (yes/no) категория(real/anonymous/guest) Установите, разрешено ли указанному пользователю использовать команду удаления. Пример: delete no guest,anonymous Команду удаления не разрешается выполнять, если вошедший в систему пользователь является гостем или анонимным.
поучить: перезаписать (да/нет) категория(реальный/аноним/гость) Устанавливает, разрешено ли указанному пользователю использовать команду overwrite.
поучить: readme (да/нет) категория(реальный/анонимный/гость) Установите, разрешать ли указанным пользователям использовать readme инструкции.
поучить: chmod (да/нет) категория(реальный/аноним/гость) Устанавливает, разрешено ли указанному пользователю использовать chmodinstruction.
поучить: umask (да/нет) категория(реальный/аноним/гость) Устанавливает, разрешено ли указанному пользователю использовать umaskинструкцию.
поручить: upload [absolute|relative] [class=<classname>]… [-] <root-dir> <dirglob> <yes|no> <owner> <group> <mode> [“dirs”|”nodirs”] [<d_mode>]
Определите Оглавление, разрешенное для загрузки. Если загрузка разрешена,Все вновь загруженные файлы принадлежат и сгруппированы пользователем<owner>и<group>определение ,Права доступа будут<mode>。Загруженные файлы, которые перезаписывают старые файлы, сохранят своих первоначальных владельцев и права доступа.информация。Разрешения на загрузку файловинформациясоответствует максимальному Оглавление Определение элемента,нравиться: загрузить /var/ftp * нет загрузить /var/ftp/incoming да демон ftp 0666 загрузить /var/ftp /incoming/gifs да jlc Guest 0600 nodirs разрешил бы загрузку только в /incoming и /incom- : Разрешено загружать только /incoming и /incom-ing/gifsОглавление. Файлы, загруженные в /incomingОглавление, будут принадлежать ftp/daemon.,Разрешение доступа — 0666; файлы, загруженные в /incoming/gifs, будут принадлежать jlc/guest.,Права доступа0600。Следует отметить, что<root-dir> Должен соответствовать домашнему каталогу в файле паролей пользователя «ftp». Параметры «dirs» и «nodirs» используются для установки возможности создания новых подкаталогов в этом каталоге. Но по умолчанию разрешено создание подкаталогов. <d_mode>Установите вновь созданный Оглавлениеправа доступа,Значение по умолчанию:0777。 Инструкции по загрузке можно применить только к основному аккаунту пользователя.Оглавление(chroot()Параметры)Эквивалентно<root-dir>пользователей,<root-dir>может быть*соответствовать любому основному Оглавление。 <owner>и<group>Также может быть указано как*,в этом случае,любые загруженные файлыили Созданный Оглавление Владелец равен отцу Оглавлениевладелец。 Параметры[absolute|relative]Укажите да<root-dir>Это абсолютный путь или относительноchroot()Указан параметр Оглавлениеотносительный путь к。По умолчанию — абсолютный путь。Вы также можете указать любое количествоclass=<classname>’для дальнейшего ограничения。Если есть Оглавление,Тогда инструкция по загрузке влияет только на пользователей в этих группах.
поручить: alias псевдоним каталога путь к каталогу Установите псевдоним для указанного каталога. Псевдоним можно использовать при переключении каталогов. Пример: alias xwin /pub/linux/xwindows Установите псевдоним xwin для /pub/linux/xwindows. После входа в систему просто введите команду cd. xwin может войти в каталог.
поручить: cdpath Оглавление Эта функция аналогична настройке системной переменной среды PATH при cd. /и т. д. время,FTP сначала проверяет, есть ли подзаголовок «Оглавление» и т. д. под текущим Оглавлением.,Если нет, проверьте, есть ли псевдоним,Если нет, выполните запрос на основе пути, указанного в этой инструкции.
Пример: cdpath /pub/linux cdpath /pub cdpath / Порядок поиска:/pub/linux. /pub /
поручить: path-filter категория(real/anonymous/guest) Оглавление Настройка имени загрузки файлапредел。Пример: path-filter anonymous /etc/pathmsg^[-A-Za-z0-9_/.]*^/.^- path-filter guest /etc/pathmsg^[-A-Za-z0-9_/.]*^/.^- Установите ограничения на загрузку имени анонимными и гостевыми пользователями. Файл может содержать только буквы A-Z, a-z, 0-9 и ._-, файлы, имена которых начинаются с «.» и «-», не могут быть загружены на сервер.
поручить: guestgroup <groupname> [<groupname> …] guestuser <username> [<username> …] realgroup <groupname> [<groupname> …] realuser <username> [<username> …] дляguestgroupинструктировать,Если это правда(real)Пользователь принадлежит к любому<groupname>указанная группа,Затем его сеансы FTP анонимно обрабатываются FTP-сервером. То есть,chroot() вызывается,Пользователю больше не разрешено выдаватьUSERи PASS Заказ。<groupname>Должна быть действительная группа。 Здесь домашнее Оглавление пользователя должно быть установлено так, чтобы оно соответствовало анонимному пользователю. Домашнее Оглавление связанных элементов в /etc/passwd разделено на две части. Первая часть — это корневой параметр Оглавление, вызываемый chroot(), а вторая часть — основное Оглавление пользователя относительно корневого Оглавление. Эти две части разделены знаком «/./», например: guest1:<passwd>:100:92:Guest Account:/ftp/./incoming:/etc/ftponly Когда гость1 успешно войдет в систему, FTP-сервер вызовет chroot("/ftp"), а затем вызовет chdir("/incoming"). Тогда гость1 сможет получить доступ к содержимому каталога /ftp только как анонимный пользователь (для гостя1 это «/»). <groupname>может быть Название группыили цифровой идентификатор. Если вы используете числовой идентификатор, вам необходимо добавить «%» перед числом. Используйте *, чтобы указать все группы. Инструкции для гостевого пользователя и гостевой группы аналогичны, за исключением того, что они ограничены одним пользователем. Realuser и Realgroup имеют одинаковый синтаксис, но имеют эффект, противоположный гостевому пользователю и гостевой группе. Они позволяют пользователям определенной группы или пользователю получать доступ к FTP-серверу с реальным идентификатором. нравиться: guestuser * realgroup admin Указывает, что все неанонимные пользователи будут рассматриваться как анонимные пользователи после входа на сервер, за исключением пользователей в группе администраторов, которые будут существовать со своими настоящими личностями после входа в систему.
поручить: guestgroup Функция Установите функцию гостевой группы. Пример: guestgroup ftponly
поручить: nice <nice-delta> [<class>] Установите приоритет планирования демона FTP-сервера.
поручить: defumask <umask> [<class>] Если удаленный пользователь принадлежит к классу, маска файла, созданного демоном, равна umask. Если класс не указан, umask будет использоваться как umask по умолчанию.
поручить: tcpwindow <size> [<class>] Установите размер окна TCP для подключения к данным. Если вы не понимаете смысла, обычно не устанавливайте его.
поручить:keepalive <yes|no> НастройкаTCP Опция параметра SO_KEEPALIVE сокета.
поручить:timeout accept <seconds> timeout connect <seconds> timeout data <seconds> timeout idle <seconds> timeout maxidle <seconds> timeout RFC931 <seconds> Установите различные часы таймаута. Эти параметры следует устанавливать только в том случае, если вы хорошо знакомы с протоколом TCP. Как правило, не меняйте эти значения. Конкретные значения см. в man. ftpaccess。
поручить: file-limit [<raw>] <in|out|total> <count> [<class>] Ограничивает количество файлов, которые разрешено загружать любому пользователю определенной группы. Если класс не указан, ограничение применяется ко всем неквалифицированным группам. raw указывает, что этот лимит включает все передачи, а не только файлы данных.
поручить:byte-limit [<raw>] <in|out|total> <count> [<class>]
Ограничивает общий объем данных, который разрешено передавать любому пользователю класса.
поручить: limit-time {*|anonymous|guest} <minutes> Ограничивает разрешенную продолжительность разговора. Значение по умолчанию — без ограничений. Реальные пользователи не имеют этого ограничения.
поручить:guestserver [<hostname>] Определяет, какие сайты разрешают анонимные подключения. Если имя хоста не указано, все анонимные подключения запрещаются.
поручить: noretrieve [absolute|relative] [class=<classname>] … [-] <file- name> <filename> … Установите, каким классам запрещен доступ к определенным файлам. Например: noretrieve /etc/passwd core Укажите, что ни один посетитель не может получить доступ к файлу паролей в файле /etcОглавление и ко всем файлам с именем «core».
поручить:allow-retrieve [absolute|relative] [class=<classname>]… [-] <filename> … Разрешите доступ к этим файлам.
поручить:private <yes|no> Когда пользователь входит в систему, указывает SITE ГРУППА и and SITE GPASS используется для указания группы расширенного доступа и соответствующего пароля. Если вы введете Название группыи Если пароль действителен,Пользователь станет участником группы,Имеет доступ к этой группе.
поручить:greeting full|brief|terse greeting text <message> Позволяет вам контролировать, сколько приветственной информации и информационного контента предоставляется пользователю после входа в систему удаленного пользователя.
поручить:banner <path> Аналогично сообщению, но баннерное сообщение отображается пользователю до того, как пользователь вводит свое имя пользователя и пароль.
поручить: hostname <some.host.name> Определите имя хоста по умолчанию для FTP-сервера.
поручить: email <name> Определяет адрес электронной почты сопровождающего FTP.
поручить: log security (anonymous|guest|real) Делать записи нарушающими правила безопасности, такие как: (noretrive, .notar, ...) заказ.
поручить:log syslog log syslog+xferlog Перенаправить зарегистрированные сообщения в файл системного журнала syslog. По умолчанию они записываются только в xferlog.
поручить:daemonaddress <address> Если это значение не установлено,Сервер отслеживает все запросы доступа,в противном случае,Сервер принимает сообщения только от<address>Определенный запрос на соединение。Обычно не устанавливайте этот параметр,Этот параметр запретит использование виртуальных хостов и других расширений в будущем.
поручить: virtual <address> <root|banner|logfile> <path> открыть виртуальныйFTPПоддержка сервера。<address>Это виртуальный серверIP-адрес。Второй параметр указывается какrootОглавление,bannnerдокумент,Путь к файлу журнала и т. д.
поручить:virtual <address> <hostname|email> <string> Установите имя хоста или адрес электронной почты, отображаемые в приветственных сообщениях.
поручить:virtual <address> allow <username> [<username> …] virtual <address> deny <username> [<username> …] Как правило, реальным и гостевым пользователям не разрешается входить на виртуальный хост. Эти две инструкции используются для переопределения пользователей, которым разрешен и запрещен доступ к виртуальному хосту.
поручить:virtual <address> private Обычно анонимным пользователям отказывают в доступе к виртуальному хосту.
поручить: defaultserver deny <username> [<username> …] defaultserver allow <username> [<username> …] Определите пользователей, которым разрешен доступ к FTP-серверу по умолчанию (не виртуальному).
поручить:defaultserver private Запретите анонимным пользователям доступ к FTP-серверу по умолчанию.
поручить: deny IP-адрес/доменное имя Документация Установите ограничения, по которым пользователи доменного имени с IP-адресом не смогут войти на сервер. Пример: deny 202.102.15* *.hacker,ком /tmp/message/deny.msg Ограничьте IP-адрес до 202.102.15* и доменное имя до *.hacker.,компьютеру com не разрешено войти на сервер
/etc/ftpusers используется для запрета некоторым пользователям системы передавать файлы по FTP, а /etc/ftphosts используется для запрета определенным хостам подключаться к этому FTP-серверу. Это делается из соображений безопасности.
Пример использования /etc/ftpusers выглядит следующим образом:
корень мусорное ведро демон адм лп синхронизировать неисправность остановка почта новости uucp оператор игры никто Ограничение доступа определенных пользователей к FTP-серверу осуществляется по соображениям безопасности системы, например, для предотвращения входа в систему суперпользователей. И запретить некоторым пользователям с одинаковыми именами команд вход на FTP-сервер.
Пример файла /etc/ftphosts выглядит следующим образом:
# Example host access file # # Everything after a ‘#’ is treated as comment, # empty lines are ignored #allow <username> <addrglob> [<addrglob> …] # Only allow host(s) matching <addrglob> to log in as <username>. #deny <username> <addrglob> [<addrglob> …] # Always deny host(s) matching <addrglob> to log in as <username>.
allow ideal *.linuxaid.com.cn 10.0.0.0/8 deny fred *.hacker.com 131.211.32.0/24
Здесь только в идеале разрешен вход на FTP-сервер с хоста, доменное имя которого linuxaid.com.cn и хост 10.0.0.0/255.0.0.0, fred запрещен вход на FTP-сервер с *.hacker. ком и 131.211.32.0/24. Если имя пользователя здесь анонимное или ftp, оно относится к анонимному пользователю.
Этот файл используется для установки того, какие операции должны выполняться при загрузке файлов пользователями, например сжатие, распаковка и т. д. Содержимое файла следующее:
:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP : : :.tar:/bin/tar -c -f – %s:T_REG|T_DIR:O_TAR:TAR : : :.tar.Z:/bin/tar -c -Z -f – %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS : : :.tar.gz:/bin/tar -c -z -f – %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP : : :.crc:/bin/cksum %s:T_REG::CKSUM : : :.md5:/bin/md5sum %s:T_REG::MD5SUM
Инструкция по настройке файла:
:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS Указывает, что все файлы, заканчивающиеся на ".Z", следует распаковать с помощью /bin/compress -d -c".
: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS Указывает, что переданные файлы будут сжаты в формат «.Z».
:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP Указывает, что все файлы с расширением «.gz» будут распакованы с помощью «/bin/gzip -cd».
: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP Указывает, что переданный файл будет сжат в формат «.gz».
: : :.tar:/bin/tar -c -f – %s:T_REG|T_DIR:O_TAR:TAR Указывает, что файлы, подлежащие передаче, упакованы с помощью «tar».
: : :.tar.Z:/bin/tar -c -Z -f – %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS Указывает, что передаваемый файл будет сжат в формат «tar.Z».
: : :.tar.gz:/bin/tar -c -z -f – %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP Указывает, что передаваемый файл будет сжат в формат «tar.gz».
: : :.crc:/bin/cksum %s:T_REG::CKSUM Указывает, что передаваемые файлы пройдут проверку CRC.
: : :.md5:/bin/md5sum %s:T_REG::MD5SUM Указывает, что передаваемые файлы подлежат проверке md5.
Фактически, в файле конфигурации по умолчанию после установки FTP уже определены часто используемые программы сжатия и распаковки, поэтому обычно нет необходимости изменять содержимое этого файла, но порядок содержимого можно изменить в соответствии с фактическими потребностями. Например, если пользователь хочет скачать файл «file.tar.gz», но на этом FTP такого файла нет, но есть файл file, то FTP-сервер упакует и сожмет файл в file.tar. gz и передать его пользователю. Если на сервере нет файла file, сервер будет искать в порядке, указанном в файле /etc/ftpconversions. В этом примере будет выполняться поиск file.Z, file.gz, file.tar, file.tar.Z. по порядку, file.tar.gz, file.crc, file.md5, пользователю будет отправлен тот, который будет найден первым. Таким образом, содержимое файла /etc/ftpconversions можно изменять по мере необходимости.
до настоящего времени,FTP-сервер, обеспечивающий анонимный доступ, успешно установлен и настроен.,Вы можете подключить его, чтобы проверить, соответствует ли функция вашим потребностям.
Программа ftpcount может подсчитывать количество подключенных в данный момент пользователей и выдавать верхний предел, например:
[root@linux doc]# ftpcount Друг класса обслуживания – 0 пользователей (без максимума) Класс обслуживания локальный – 0 пользователей (без максимума) Класс обслуживания внешний мир – 0 пользователей (без максимума) Здесь подключено 0 местных жителей, и верхнего предела нет. Несколько других категорий имеют то же значение.
[root@linux doc]# ftpwho Друг класса обслуживания: – 0 пользователей (без максимума) Класс обслуживания местный: – 0 пользователей (без максимума) Класс обслуживания местный: – 0 пользователей (без максимума) На данный момент нет пользователей, подключенных ни к одной из трех категорий.
ftpshut
Эта программа в основном используется для создания /etc/shutmsg — команды завершения работы, установленной ранее в /etc/ftpaccess. Формат использования ftpshut следующий:
ftpshut [ -V ] [ -l min] [ -d min] time [ warning-message … ] -l Эта опция задает количество минут перед выключением FTP-сервера, чтобы остановить запросы пользователей на подключение. -d Эта опция задает количество минут до выключения FTP-сервера перед отключением подключенных пользователей. time Установите время закрытия FTP-сервера. Например, если вы хотите закрыть FTP-сервер в 22:00, это 2200. warning-message Сигнал тревоги отображается для пользователей перед отключением. Информация Например:
[root@linux /etc]# ftpshut -l15 -d5 1800 “ftp server will shutdown” [root@lix /etc]# less shutmsg 2000 04 07 18 00 0015 0005 ftp server will shutdown
Часто бывает необходимо создать пользователей, которые разрешают доступ к серверу только по FTP. Метод реализации следующий:
1. Откройте аккаунты в системе для этих пользователей обычным способом.
[root@ns /etc]#useradd ftp_user1 [root@ns /etc]#chmod 700 /etc/shadows [root@ns /etc]#vi /etc/shadows
Удалить элементы: ftp_user1:!!:11113:0:99999:7:-1:-1:134537372 «!!» во втором поле, а затем войдите в систему как пользователь ftp_usre1, пароль не будет запрашиваться, а затем используйте passwd, чтобы установить пароль для пользователя.
2. С помощью vi измените файл /etc/shells и добавьте элемент /dev/null или /bin/passwd, как показано ниже:
[root@ns /etc]# cat shells /bin/bash /bin/sh /bin/ash /bin/bsh /bin/tcsh /bin/csh
Изменить на:
[root@ns /etc]# cat shells /bin/bash /bin/sh /bin/ash /bin/bsh /bin/tcsh /bin/csh /dev/null /bin/passwd
2. Используйте vi, чтобы открыть файл /etc/passwd. 3. Измените оболочку входа пользователей в системах, поддерживающих только FTP, на /dev/null (если пользователям не разрешено менять свои пароли) или /bin/passwd (если пользователям разрешено менять свои пароли), как показано ниже:
ftp_user1:x:503:504::/home/ftp_user1:/bin/bash Источник: ftp_user1:x:503:504::/home/ftp_user1:/dev/null или ftp_user1:x:503:504::/home/ftp_user1:/bin/passwd
Таким образом, пользователь может использовать только такие службы, как pop3 и FTP, но не может войти в систему через telnet.
Так называемый виртуальный анонимный хост означает, что на одной машине имеется несколько IP-адресов, и он может предоставлять анонимный FTP-сервер внешнему миру. Эти серверы логически независимы, имеют разные списки управления доступом и разное содержимое для загрузки. Вот шаги для настройки виртуального FTP-сервера:
1. Сначала задайте псевдоним IP-адреса локальной сетевой карте, то есть привяжите несколько IP-адресов к одной сетевой карте: Например, ваш внутренний FTP-хост — 192.168.0.4.
Привязать другой IP-адрес можно следующим образом: /sbin/ifconfig eth0:0 192.168.0.5 up //Добавляем новый IP в интерфейс /sbin/route add -host 192.168.11.7 eth0:0 //Добавить информацию о маршруте
2. Сначала перейдите в /home/virtualftp и /var/log/virtualftp. Создайте файл баннера /home/virtualftp/banner_message и измените основной файл конфигурации FTP-сервера /etc/ftpaccess.,Добавлена поддержка виртуального FTP.,Добавьте в файл следующие строки:
virtual 192.168.0.5 root /home/virtualftp virtual 192.168.0.5 banner /home/virtualftp/banner_message virtual 192.168.0.5 logfile /var/log/virtualftp/xferlog
Приведенные выше три инструкции соответственно устанавливают корень виртуального хоста.,Файлы журналов виртуального хоста,Отображение входа в виртуальный хостинформация。Путь вышеиимя файл может быть определен произвольно.
3. Скопируйте необходимые анонимные файлы FTP, в основном /lib, /etc, /bin # cp /home/ftp/* /home/virtualftp -a
4. Определите 192.168.0.5 в DNS и установите его в качестве сопоставления доменного имени виртуального FTP.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/162604.html Исходная ссылка: https://javaforall.cn