michaellukashov / Far-NetBox

SFTP/SCP/FTP/FTPS/WebDAV/S3 client for Far Manager 3 (http://farmanager.com/)
https://forum.farmanager.com/viewtopic.php?t=6317
GNU General Public License v2.0
161 stars 52 forks source link

Плагин вылетает при подключении к "закрытому" ftp. #142

Open WildAlex opened 9 years ago

WildAlex commented 9 years ago

В панели управления хостингом сайта есть настройки ограничения доступа к ftp. Можно разрешить подключаться любому хосту, ограничить по ip или разрешить доступ только из самой панели управления. Если отключить доступ для своего ip, то при попытке подключения плагин пишет: "Error getting name of curent remote directory. PWD: Permission denied". После нажатия кнопки "Ok" сообщает "Internal error fz#connect (0080). PWD: Permission denied" и ждет реконнекта. Если здесь нажать "Abort", то far закрывается и выскакивает окно windows поиска способа устранения ошибки. Если нажать "Reconnect", то снова появляется первое сообщение, а при нажатии "Ok" происходит такой же вылет.

VictorVG commented 9 years ago

Вообще-то нормальная ситуация - вы закрыли доступ с данного IP и получили ответ сервера Permission denied (доступ запрещён), не нормально тут только что судя по вашему описанию где-то возникает AV. А так налицо грубая ошибка оператора со всеми вытекающими.

WildAlex commented 9 years ago

Я понимаю, что сообщение о доступе правильное. Мне непонятно, почему при этом far вылетает с ошибкой. Даже если это грубая ошибка хостера,

P.S. Простите мою некомпетентность, я не знаю что такое AV.

VictorVG commented 9 years ago

AV аббревиатура от Access Violation - нарушение доступа к памяти когда программа пытается обратится к адресу в памяти доступ к которому для неё запрещён срабатывает аппаратная защита доступа к ОЗУ (точнее схемы контроля в ЦП) и формируется не маскируемое (его невозможно отключить) прерывание (NMI) с кодом 0x00000005 (Windows его покажет как 0хС0000005) которое обрабатывается специальным кодом в ядре ОС как сбой в программе, чем оно собственно по сути и является и обычно аварийно завершает работу программы вызвавшей NMI что мы в обиходе называем "программа упала, вылетела". Это нормальная работа механизма защиты ОС от программных ошибок, а вот что их вызвало надо искать.

И в данном случае говоря об ошибке настройки вы правы только в том, что допускать блокировку активного IP с которого в данный момент происходит управление сервером нет смысла, но я сталкивался с сетями где с одного IP осуществляется управление всей сетью, а доступ с других и доступ к данным с управляющей консоли технически не возможен. К примеру консоль может быть контроллером (ЭВМ с фиксированной программой) управления подключаемым к сети со специально выделенным в ней для этого IP и по соображениям безопасности доступ к данным с него блокируется. Тот же домашний роутер это пример такой конфигурации - вы подключаетесь к нему со специально выделенного IP управления, но какие данные передаются через устройство с этого адреса вы не видите....

WildAlex commented 9 years ago

На счет блокировки доступа к FTP по IP... По умолчанию доступ к FTP в панели управления хостингом отключен вашпе! Включается только при необходимости.

На счет блокировки активного IP, с которого в данный момент правятся файлы по FTP... Сайт не мой, просто меня попросили кое-что "допилить". У меня статический IP адрес и в данном случае это доставляет некоторое неудобство. По этому дабы не заморачиваться, приходится включать доступ с любого хоста и после правок вырубать.

Но это все лирика... Меня ГЛАВНЫМ ОБРАЗОМ беспокоят ВЫЛЕТЫ FAR при попытке доступа к "закрытым" ресурсам. К примеру, при попытке сохранения отредактированного файла, у которого стоят "не те" права или владельцы. Far тупо вылетает с ошибкой и все изменения уходят в "трубу"... По этому приходится юзать старый FarFtp, хотя NetBox нравится больше.

P.S. У меня Far 3.0 (build 4242) x86 и NetBox 2.1.41.365 из этого же комплекта. При попытке установить свежий 2.1.40, он просто исчезает из списка плагинов. Где грабли?

VictorVG commented 9 years ago

С вылетами AV надо разбираться ибо такого быть не должно, а что до запрета записи если он установлен правами доступа это правильно и в данном случае ошибка игнорирования прав доступа присутствует в FarFTP. Я обычно поступаю иначе - сохраняю локальную копию и её пересылаю на сервер.

Что касается перезаписи более новой версии 2.1.41 более старой 2.1.40 то тут два вопроса:

1) а нет ли попытки перезаписи х86 сборки х64 сборкой? сборка другой разрядности вообще не запустится. 2) а в каталоге ./Plugins/NetBox есть ли сама NetBox.dll и её языковые файлы? Если не будет языковых файлов или самой DLL плагин в списке по F11 не появится.

WildAlex commented 9 years ago

Всё что вы описали про права, я прекрасно понимаю. Как и то, что лучше редактировать файл локально, а потом заливать. Но иногда хочется всё сделать побыстрее, игнорируешь такие вещи и в результате сам виноват... Но вылеты - это вашпе ни в какие ворота! А у вас разве не вылетает при попытке, к примеру, изменить и сохранить файл с правами 644?

VictorVG commented 9 years ago

У себя я пока такой ошибки не делал. В своё время научился ещё на 15ВСМ5 и Минск-32 что прежде чем что-то заменять надо сделать бэкап.