Filezilla не будет следовать символическим ссылкам

Вопрос или проблема

У меня возникли некоторые трудности с тем, чтобы FileZilla отображала содержимое папки, которая является целевой для символической ссылки.

Список папок FileZilla

На скриншоте commonfiles и db_uploads – это символические ссылки на папки, у которых указаны права 777, но когда я щелкаю на любую из них, я получаю следующую ошибку:

Ошибка Filezilla

Я не смог найти никаких настроек в FileZilla, которые могли бы изменить это поведение.

Версия FZ 3.33.0, Win10 64-bit

Сервер Apache/2.4.33 (cPanel) OpenSSL/1.0.2o mod_bwlimited/1.4

Журнал попытки получить каталог символической ссылки:

09:09:59    Trace:  CControlSocket::SendNextCommand()
09:09:59    Trace:  CFtpLogonOpData::Send() in state 0
09:09:59    Status: Resolving address of *************************
09:09:59    Status: Connecting to ***********:21...
09:09:59    Status: Connection established, waiting for welcome message...
09:09:59    Trace:  CFtpControlSocket::OnReceive()
09:09:59    Response:   220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
09:09:59    Response:   220-You are user number 1 of 55 allowed.
09:09:59    Response:   220-Local time is now 14:09. Server port: 21.
09:09:59    Response:   220-This is a private system - No anonymous login
09:09:59    Response:   220-IPv6 connections are also welcome on this server.
09:09:59    Response:   220 You will be disconnected after 15 minutes of inactivity.
09:09:59    Trace:  CFtpLogonOpData::ParseResponse() in state 1
09:09:59    Trace:  CControlSocket::SendNextCommand()
09:09:59    Trace:  CFtpLogonOpData::Send() in state 2
09:09:59    Command:    AUTH TLS
09:09:59    Trace:  CFtpControlSocket::OnReceive()
09:09:59    Response:   234 AUTH TLS OK.
09:09:59    Trace:  CFtpLogonOpData::ParseResponse() in state 2
09:09:59    Status: Initializing TLS...
09:09:59    Trace:  CTlsSocketImpl::Handshake()
09:09:59    Trace:  CTlsSocketImpl::ContinueHandshake()
09:09:59    Trace:  TLS handshake: About to send CLIENT HELLO
09:09:59    Trace:  TLS handshake: Sent CLIENT HELLO
09:09:59    Trace:  CTlsSocketImpl::OnSend()
09:09:59    Trace:  CTlsSocketImpl::OnRead()
09:09:59    Trace:  CTlsSocketImpl::ContinueHandshake()
09:10:00    Trace:  CTlsSocketImpl::OnRead()
09:10:00    Trace:  CTlsSocketImpl::ContinueHandshake()
09:10:00    Trace:  TLS handshake: Received SERVER HELLO
09:10:00    Trace:  TLS handshake: Processed SERVER HELLO
09:10:00    Trace:  CTlsSocketImpl::OnRead()
09:10:00    Trace:  CTlsSocketImpl::ContinueHandshake()
09:10:00    Trace:  TLS handshake: Received CERTIFICATE
09:10:00    Trace:  TLS handshake: Processed CERTIFICATE
09:10:00    Trace:  TLS handshake: Received SERVER KEY EXCHANGE
09:10:00    Trace:  TLS handshake: Processed SERVER KEY EXCHANGE
09:10:00    Trace:  TLS handshake: Received SERVER HELLO DONE
09:10:00    Trace:  TLS handshake: Processed SERVER HELLO DONE
09:10:00    Trace:  TLS handshake: About to send CLIENT KEY EXCHANGE
09:10:00    Trace:  TLS handshake: Sent CLIENT KEY EXCHANGE
09:10:00    Trace:  TLS handshake: About to send FINISHED
09:10:00    Trace:  TLS handshake: Sent FINISHED
09:10:00    Trace:  CTlsSocketImpl::OnRead()
09:10:00    Trace:  CTlsSocketImpl::ContinueHandshake()
09:10:00    Trace:  TLS handshake: Received NEW SESSION TICKET
09:10:00    Trace:  TLS handshake: Processed NEW SESSION TICKET
09:10:00    Trace:  TLS handshake: Received FINISHED
09:10:00    Trace:  TLS handshake: Processed FINISHED
09:10:00    Trace:  TLS Handshake successful
09:10:00    Trace:  Protocol: TLS1.2, Key exchange: ECDHE-RSA, Cipher: AES-256-GCM, MAC: AEAD
09:10:00    Trace:  Hostname does not match certificate SANs
09:10:00    Status: Verifying certificate...
09:10:00    Status: TLS connection established.
09:10:00    Trace:  CControlSocket::SendNextCommand()
09:10:00    Trace:  CFtpLogonOpData::Send() in state 5
09:10:00    Command:    USER ********
09:10:00    Trace:  CTlsSocketImpl::OnRead()
09:10:00    Trace:  CFtpControlSocket::OnReceive()
09:10:00    Response:   331 User ******** OK. Password required
09:10:00    Trace:  CFtpLogonOpData::ParseResponse() in state 5
09:10:00    Trace:  CControlSocket::SendNextCommand()
09:10:00    Trace:  CFtpLogonOpData::Send() in state 5
09:10:00    Command:    PASS ************
09:10:00    Trace:  CTlsSocketImpl::OnRead()
09:10:00    Trace:  CFtpControlSocket::OnReceive()
09:10:00    Response:   230 OK. Current restricted directory is /
09:10:00    Trace:  CFtpLogonOpData::ParseResponse() in state 5
09:10:00    Trace:  CControlSocket::SendNextCommand()
09:10:00    Trace:  CFtpLogonOpData::Send() in state 9
09:10:00    Command:    OPTS UTF8 ON
09:10:00    Trace:  CTlsSocketImpl::OnRead()
09:10:00    Trace:  CFtpControlSocket::OnReceive()
09:10:00    Response:   200 OK, UTF-8 enabled
09:10:00    Trace:  CFtpLogonOpData::ParseResponse() in state 9
09:10:00    Trace:  CControlSocket::SendNextCommand()
09:10:00    Trace:  CFtpLogonOpData::Send() in state 10
09:10:00    Command:    PBSZ 0
09:10:00    Trace:  CTlsSocketImpl::OnRead()
09:10:00    Trace:  CFtpControlSocket::OnReceive()
09:10:00    Response:   200 PBSZ=0
09:10:00    Trace:  CFtpLogonOpData::ParseResponse() in state 10
09:10:00    Trace:  CControlSocket::SendNextCommand()
09:10:00    Trace:  CFtpLogonOpData::Send() in state 11
09:10:00    Command:    PROT P
09:10:01    Trace:  CTlsSocketImpl::OnRead()
09:10:01    Trace:  CFtpControlSocket::OnReceive()
09:10:01    Response:   200 Data protection level set to "private"
09:10:01    Trace:  CFtpLogonOpData::ParseResponse() in state 11
09:10:01    Status: Logged in
09:10:01    Trace:  Measured latency of 177 ms
09:10:01    Trace:  CFtpControlSocket::ResetOperation(0)
09:10:01    Trace:  CControlSocket::ResetOperation(0)
09:10:01    Trace:  CFileZillaEnginePrivate::ResetOperation(0)
09:10:01    Trace:  CFileZillaEnginePrivate::ResetOperation(0)
09:10:19    Status: Retrieving directory listing of "/public_html/db_uploads"...
09:10:19    Trace:  CControlSocket::SendNextCommand()
09:10:19    Trace:  CFtpListOpData::ListSend() in state 0
09:10:19    Trace:  CFtpChangeDirOpData::Send() in state 0
09:10:19    Trace:  CFtpChangeDirOpData::Send() in state 2
09:10:19    Command:    CWD /public_html/db_uploads
09:10:19    Trace:  CTlsSocketImpl::OnRead()
09:10:19    Trace:  CFtpControlSocket::OnReceive()
09:10:19    Response:   550 Can't change directory to /public_html/db_uploads: No such file or directory
09:10:19    Trace:  CFtpChangeDirOpData::ParseResponse() in state 2
09:10:19    Trace:  CFtpControlSocket::ResetOperation(2)
09:10:19    Trace:  CControlSocket::ResetOperation(2)
09:10:19    Trace:  CControlSocket::ParseSubcommandResult(2)
09:10:19    Trace:  CFtpListOpData::SubcommandResult() in state 1
09:10:19    Trace:  CFtpControlSocket::ResetOperation(2)
09:10:19    Trace:  CControlSocket::ResetOperation(2)
09:10:19    Error:  Не удалось получить список каталогов
09:10:19    Trace:  CFileZillaEnginePrivate::ResetOperation(2)

Это не проблема FileZilla. Код ошибки 550 может указывать на то, что у вашего пользователя нет разрешения на доступ к этому каталогу, и тогда FTP сервер блокирует доступ к нему. Проверьте разрешение каталога на вашем сервере.

ey могли бы изменить это поведение.

Версия FZ 3.33.0, Win10 64-bit

Сервер Apache/2.4.33 (cPanel) OpenSSL/1.0.2o mod_bwlimited/1.4

Журнал попытки получить каталог символической ссылки:

09:09:59 Trace: CControlSocket::SendNextCommand()
09:09:59 Trace: CFtpLogonOpData::Send() in state 0
09:09:59 Status: Resolving address of *************************
09:09:59 Status: Connecting to ***********:21…
09:09:59 Status: Connection established, waiting for welcome message…
09:09:59 Trace: CFtpControlSocket::OnReceive()
09:09:59 Response: 220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
09:09:59 Response: 220-You are user number 1 of 55 allowed.
09:09:59 Response: 220-Local time is now 14:09. Server port: 21.
09:09:59 Response: 220-This is a private system – No anonymous login
09:09:59 Response: 220-IPv6 connections are also welcome on this server.
09:09:59 Response: 220 You will be disconnected after 15 minutes of inactivity.
09:09:59 Trace: CFtpLogonOpData::ParseResponse() in state 1
09:09:59 Trace: CControlSocket::SendNextCommand()
09:09:59 Trace: CFtpLogonOpData::Send() in state 2
09:09:59 Command: AUTH TLS
09:09:59 Trace: CFtpControlSocket::OnReceive()
09:09:59 Response: 234 AUTH TLS OK.
09:09:59 Trace: CFtpLogonOpData::ParseResponse() in state 2
09:09:59 Status: Initializing TLS…
09:09:59 Trace: CTlsSocketImpl::Handshake()
09:09:59 Trace: CTlsSocketImpl::ContinueHandshake()
09:09:59 Trace: TLS handshake: About to send CLIENT HELLO
09:09:59 Trace: TLS handshake: Sent CLIENT HELLO
09:09:59 Trace: CTlsSocketImpl::OnSend()
09:09:59 Trace: CTlsSocketImpl::OnRead()
09:09:59 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received SERVER HELLO
09:10:00 Trace: TLS handshake: Processed SERVER HELLO
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received CERTIFICATE
09:10:00 Trace: TLS handshake: Processed CERTIFICATE
09:10:00 Trace: TLS handshake: Received SERVER KEY EXCHANGE
09:10:00 Trace: TLS handshake: Processed SERVER KEY EXCHANGE
09:10:00 Trace: TLS handshake: Received SERVER HELLO DONE
09:10:00 Trace: TLS handshake: Processed SERVER HELLO DONE
09:10:00 Trace: TLS handshake: About to send CLIENT KEY EXCHANGE
09:10:00 Trace: TLS handshake: Sent CLIENT KEY EXCHANGE
09:10:00 Trace: TLS handshake: About to send FINISHED
09:10:00 Trace: TLS handshake: Sent FINISHED
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received NEW SESSION TICKET
09:10:00 Trace: TLS handshake: Processed NEW SESSION TICKET
09:10:00 Trace: TLS handshake: Received FINISHED
09:10:00 Trace: TLS handshake: Processed FINISHED
09:10:00 Trace: TLS Handshake successful
09:10:00 Trace: Protocol: TLS1.2, Key exchange: ECDHE-RSA, Cipher: AES-256-GCM, MAC: AEAD
09:10:00 Trace: Hostname does not match certificate SANs
09:10:00 Status: Verifying certificate…
09:10:00 Status: TLS connection established.
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 5
09:10:00 Command: USER ********
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 331 User ******** OK. Password required
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 5
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 5
09:10:00 Command: PASS ************
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 230 OK. Current restricted directory is /
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 5
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 9
09:10:00 Command: OPTS UTF8 ON
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 200 OK, UTF-8 enabled
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 9
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 10
09:10:00 Command: PBSZ 0
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 200 PBSZ=0
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 10
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 11
09:10:00 Command: PROT P
09:10:01 Trace: CTlsSocketImpl::OnRead()
09:10:01 Trace: CFtpControlSocket::OnReceive()
09:10:01 Response: 200 Data protection level set to “private”
09:10:01 Trace: CFtpLogonOpData::ParseResponse() in state 11
09:10:01 Status: Logged in
09:10:01 Trace: Measured latency of 177 ms
09:10:01 Trace: CFtpControlSocket::ResetOperation(0)
09:10:01 Trace: CControlSocket::ResetOperation(0)
09:10:01 Trace: CFileZillaEnginePrivate::ResetOperation(0)
09:10:01 Trace: CFileZillaEnginePrivate::ResetOperation(0)
09:10:19 Status: Retrieving directory listing of “/public_html/db_uploads”…
09:10:19 Trace: CControlSocket::SendNextCommand()
09:10:19 Trace: CFtpListOpData::ListSend() in state 0
09:10:19 Trace: CFtpChangeDirOpData::Send() in state 0
09:10:19 Trace: CFtpChangeDirOpData::Send() in state 2
09:10:19 Command: CWD /public_html/db_uploads
09:10:19 Trace: CTlsSocketImpl::OnRead()
09:10:19 Trace: CFtpControlSocket::OnReceive()
09:10:19 Response: 550 Can’t change directory to /public_html/db_uploads: No such file or directory
09:10:19 Trace: CFtpChangeDirOpData::ParseResponse() in state 2
09:10:19 Trace: CFtpControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ParseSubcommandResult(2)
09:10:19 Trace: CFtpListOpData::SubcommandResult() in state 1
09:10:19 Trace: CFtpControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ResetOperation(2)
09:10:19 Error: Не удалось получить список каталогов
09:10:19 Trace: CFileZillaEnginePrivate::ResetOperation(2)

Ответ или решение

Проблема, с которой вы столкнулись при использовании FileZilla, связана с невозможностью доступа к содержимому каталогов, на которые ссылаются символические ссылки. Сообщение об ошибке 550, которое вы получили, указывает на то, что FTP-сервер не может перейти к указанному каталогу, скорее всего из-за недостатка прав доступа к нему.

Вот несколько шагов, которые могут помочь вам решить эту проблему:

  1. Проверка прав доступа:
    Убедитесь, что у пользователя, под которым вы входите в FTP, есть необходимые права доступа к указанным символическим ссылкам и собственным директориям. Для этого выполните следующие действия:

    • Подключитесь к серверу через SSH (если это возможно) и выполните команду ls -l в родительском каталоге символической ссылки. Убедитесь, что права доступа выставлены правильно (например, 755 для директорий). Если каталог не принадлежит вашему пользователю, вам могут потребоваться права на чтение и выполнение.
    ls -l /path/to/parent/directory/
  2. Проверка инкапсуляции simbolic links:
    Некоторые FTP-серверы могут быть настроены так, чтобы не следовать символическим ссылкам. Проверьте конфигурацию вашего FTP-сервера (например, Pure-FTPd) и убедитесь, что настройки позволяют пользователям следовать символическим ссылкам.

  3. Настройки сервера:
    В некоторых случаях настройки конфигурации Apache могут блокировать доступ к определенным директориям. Проверьте конфигурационные файлы вашего веб-сервера, такие как .htaccess, чтобы убедиться, что в них нет правил, запрещающих доступ к этим директориям.

  4. Обновление FileZilla:
    Вы используете довольно старую версию FileZilla (3.33.0). Рекомендуется обновить клиент до последней стабильной версии, так как в новых версиях могут быть исправлены существующие ошибки и улучшена поддержка различных функций.

  5. Попробуйте другой клиент FTP:
    Если проблема сохраняется, попробуйте использовать другой FTP-клиент (например, WinSCP) для тестирования, чтобы подтвердить, является ли проблема специфичной для FileZilla или она связана непосредственно с сервером.

  6. Обратитесь в службу поддержки вашего хостинг-провайдера:
    Если вышеуказанные шаги не решают проблему, обратитесь к службе поддержки вашего хостинг-провайдера. Они могут помочь вам проверить конфигурацию вашего сервера и убедиться, что он правильно настроен для доступа к символическим ссылкам.

Следуя этим рекомендациям, вы сможете устранить проблему с доступом к символическим ссылкам в FileZilla.

Оцените материал
Добавить комментарий

Капча загружается...