0

I'm having some difficulty getting FileZilla to show the contents of a folder that is the target of a symbolic link.

Filezilla folder listing

In the screenshot commonfiles and db_uploads are symlinked folders that show as having permissions of 777, but when I click on either I get this error:

Filezilla error

I can't find any settings in FileZilla that look as if they would change this behaviour.

FZ version 3.33.0, Win10 64-bit

Server Apache/2.4.33 (cPanel) OpenSSL/1.0.2o mod_bwlimited/1.4

Log of an attempt to get directory of symbolic-linked folder:

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:  Failed to retrieve directory listing
09:10:19    Trace:  CFileZillaEnginePrivate::ResetOperation(2)
  • That does not look like problem of FileZilla. It's obviously your FTP server that cannot follow the symlink. – Martin Prikryl Jun 18 '18 at 6:28
  • I know nothing about Apache, except that I gather it is in fairly wide use. This would seem like a bit of a showstopper ;-). The website can and does accept uploads to that folder, so is it a configuration issue in my case (i.e. Do I hassle the server man?) – rossmcm Jun 18 '18 at 7:29
  • It has nothing to do with Apache. Apache is HTTP server. This is about FTP server. – Martin Prikryl Jun 18 '18 at 7:31
  • Doesn't the apache http server have an FTP module? If someone was running an Apache web server and they wanted to provide FTP how would they do it? I don't know. That's the reason for my original question. I. don't. know. I came here looking for constructive help - clearly I'm in the wrong place. – rossmcm Jun 18 '18 at 9:26
  • FTP and HTTP are unrelated. While Apache has FTP module, it's not really used for managing a website. For that you usually have a separate FTP server. And as we do not know anything about your server, we cannot help you there. A full FileZilla log file may reveal something about the FTP server. – Martin Prikryl Jun 18 '18 at 9:36
0

This is not a FileZilla issue. The 550 error code may indicate that your user has no permission to visit that directory and then the FTP server is blocking the access to it. Check the directory permission in your server.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.