Filezilla won’t follow symbolic links

filezillaftpsymbolic-link

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)

Best Answer

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.

Related Question