Вопрос или проблема
У меня на машине с Debian работает сервер VSFTPD. После подключения я могу перемещаться по любым каталогам, к которым у пользователя есть доступ, за исключением использования встроенного FTP-клиента Kodi.
Я использовал WinSCP. Настройки для сеанса следующие: протокол файлов – FTP, шифрование – нет, имя хоста – IP сервера, номер порта – 21, учетные данные для входа. После входа я могу перемещаться там, где у меня есть разрешения, и не могу перемещаться туда, где у меня нет разрешений. Я использовал команду ftp в командной строке Windows. Она сообщает, что используется vsFTPd 3.0.3. То же ожидаемое поведение навигации, которое подчиняется разрешениям файлов. Я добавил FTP-сервер как сетевую папку с помощью сетевого мастера KDE. Согласно свойствам, он указывает на ftp://@:21/mnt. Снова то же ожидаемое поведение навигации.
FTP-клиент в Kodi ведет себя иначе, чем все вышеупомянутое. Он сразу отправляет меня в мою домашнюю директорию. Все мои медиафайлы хранятся на отдельном диске, монтированном в /mnt, а не в моей домашней директории. Kodi не позволяет мне перейти из домашней директории в /mnt. Когда я выбираю опцию “..”, чтобы подняться на уровень выше из /home, меня возвращает в окно настройки общего доступа. При добавлении FTP-общего ресурса есть поле ‘Remote Path’, но если я введу какой-либо путь вне /home, я получаю следующую ошибку в логах Kodi.
2025-02-02 21:43:41.203 T:7 debug <general>: CurlFile::Open - <ftp://USERNAME:PASSWORD@sumer:21/mnt/>
2025-02-02 21:43:41.203 T:7 debug <general>: easy_acquire - Created session to ftp://sumer
2025-02-02 21:43:41.250 T:7 error <general>: CCurlFile::CReadState::FillBuffer - (0x5606e4cf0390) Failed: Access denied to remote resource(9)
2025-02-02 21:43:41.250 T:7 error <general>: CCurlFile::Open - <ftp://USERNAME:PASSWORD@sumer:21/mnt/> Failed with code 550:
2025-02-02 21:43:41.250 T:7 error <general>: GetDirectory - Error getting ftp://sumer:21/mnt/
Это разрешения для /mnt, которые должны быть достаточными для его обхода.
zagesi@sumer:~$ ls -l / | grep mnt
drwxr-xr-x 3 root root 4096 Feb 2 16:17 mnt
Я временно изменил разрешения на 777, но это не изменило ошибку.
Я мог бы обойти эту ошибку, создав символические ссылки на соответствующие каталоги в /mnt и /home, но это кажется временным решением. Я хотел бы узнать, делаю ли я что-то неправильно, прежде чем прибегать к этому. Есть идеи, что вызывает эту проблему? Я делаю что-то неправильно или это ожидаемое поведение? Или это ограничение FTP-клиента Kodi?
Наконец, если я использую SSH/SFTP в Kodi на своем Steam Deck, я могу перемещаться там, где хочу. По какой-то причине Windows’ Kodi не имеет опции SSH/SFTP.
Ответ или решение
Конечно, позвольте предоставить вам подробное объяснение проблемы с навигацией в клиенте FTP встроенного в Kodi и дать возможные пути её решения.
Теория
В теме вопроса описана проблема с невозможностью перемещения за пределы домашнего каталога пользователя при использовании FTP-клиента в Kodi. Понимание принципов работы FTP и особенностей программного обеспечения Kodi необходимо для анализа этой ситуации.
FTP (File Transfer Protocol) — это протокол сетевого переноса файлов, используемый для передачи данных между клиентом и сервером. Код доступа и прав для перемещения по структуре каталогов определяется FTP-сервером (в данном случае VSFTPD). При подключении пользователи предоставляют свои учетные данные, после чего сервер распространяет доступ исходя из настроек, прописанных в конфигурационных файлах сервера и уровнях доступа, назначенных конкретным пользователям.
Kodi является мультимедийным плеером с поддержкой различных протоколов и интеграцией сетевых клиентов для воспроизведения медиафайлов. Однако, встроенный FTP-клиент Kodi имеет ограниченный функционал и может не поддерживать полную навигацию по всем каталогам системы, что и проявляется в вашей проблеме.
Пример
Вы подключаете Kodi к FTP-серверу на Debian с использованием встроенного клиента FTP Kodi. В результате этого подключения, навигация останавливается на домашнем каталоге и не позволяет произвести переход на уровень выше — к корневой директории, в вашем случае /mnt
, где находятся мультимедиа файлы.
Вы сравниваете это поведение с другими клиентами, такими как WinSCP и KDE, которые без проблем обеспечивают желаемую навигацию, что подтверждает правильность настроек на VSFTPD. Применение командной строки Windows также не выявляет проблем с конфигурацией и правами.
Попытки изменить права доступа на папке /mnt
на более общедоступные через 777 не решает проблему, что говорит о вероятном ограничении самого клиента Kodi или его конфигурации считанных путей.
Использование SSH/SFTP на других устройствах, например на Steam Deck, не сталкивается с подобными ограничениями, предположительно из-за различий в поддерживаемых протоколах.
Применение
Для решения проблемы, следует рассмотреть несколько потенциальных подходов:
-
Проверка конфигурации VSFTPD:
- Убедитесь, что конфигурационный файл vsftpd.conf не содержит ограничений по chroot, которые могут принудительно удерживать пользователя в своей домашней директории.
- Проверьте параметры
chroot_local_user
иallow_writeable_chroot
.
-
Обновление Kodi:
- Проверьте наличие обновлений для Kodi, так как обновленные версии могут исправить известные ограничения или ошибки в FTP-клиенте.
- Рассмотрите возможность замены клиентского модуля на альтернативный, если такой доступен и предоставляет более широкие возможности навигации.
-
Использование Symlink (временное решение):
- Создание симлинков из домашнего каталога к мультимедийным файлам. Это позволит обойти клиентские ограничения, однако не является идеальным или долгосрочным решением.
-
Изучение логов Kodi:
- Исследуйте логи ошибок Kodi для выявления возможных ограничений или недоступных функций, возможно, потребуется модификация источника или конфигурации.
-
Смена протокола подключения:
- Поскольку SFTP обеспечивает необходимую навигацию в других устройствах, рассмотреть использование альтернативных протоколов там, где они доступны, или использование специальных клиентских надстроек для Windows Kodi.
К сожалению, данная проблема действительно может быть связана с ограничениями на стороне клиента в Kodi, что подтверждается корректной работой других клиентов с теми же настройками сервера. Использование более современных или альтернативных протоколов доступа может стать решением вашей проблемы, однако до её окончательного устранения может потребоваться временное использование обходных путей и тщательная настройка сервера и клиента.