Input-Output error when reading directory

7.1k Views Asked by At

I have a problem with reading folders/files of a curlftpfs-mounted folder: The server is using FTPES with explicit TLS/SSL and I have only reading permissions on it.

My system is using Mint15 (Ubuntu 13.04), curlftpfs 0.9.2, libcurl 7.29.0, fuse 2.9

My used command is:

curlftpfs -r -v -o ssl_control,cacert=~/serverzertifikat.pem,no_verify_peer,allow_other,tlsv1 username:[email protected]:990/efz_out ~/mount

This produces the following output:

Couldn't find host hostname.com in the .netrc file; using defaults
About to connect() to hostname.com port 990 (#0)
Trying X.X.X.X...
Connected to hostname.com (X.X.X.X) port 990 (#0)
SOME HOST INFORMATIONS
AUTH SSL
234 Proceed with negotiation.
error reading ca cert file ~/serverzertifikat.pem (Error while reading file.)
server certificate verification SKIPPED
compression: NULL
cipher: AES-128-CBC
MAC: SHA1
USER username
331 Please specify the password.
PASS password
230 Login successful.
PBSZ 0
200 PBSZ set to 0.
PROT C
200 PROT now Clear.
PWD
257 "/"
Entry path is '/'
CWD efz_out
250 Directory successfully changed.
Remembering we are in dir "efz_out/"
Connection #0 to host hostname.com left intact

When I now go into my mounted directory and want to list all files with

ls -al

I get the following error message:

ls: reading directory .: Input/output error
total 0

I already googled a long time and tried a lot of different options, but none of them changed sth.

Maybe one of you has experience with it and can help me?

My opinion is, that the problem has to do with FTPES (I found some post, where other users had the same problem with their servers, but that couldn't help me, because the used the option: no_verify_hostname, which isn't actually no more supported because of security issues)

2

There are 2 best solutions below

0
On

Comment 12 here fixed it for me on RHEL 7 https://bugzilla.redhat.com/show_bug.cgi?id=1183409

Short version, run this first: export NSS_STRICT_NOFORK=DISABLED

1
On

We have recently faced the same issue and found out that the passive mode of the FTP server has been disabled. In order to tell curlftpfs to connect in active mode, run with -o ftp_port=- option.

$> curlftpfs -o user=<username>:<password>,ftp_port=- ftp://<FTP_IP> /mnt/ftp.