this post was submitted on 19 Mar 2025
11 points (92.3% liked)

Linux

10273 readers
55 users here now

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

founded 2 years ago
MODERATORS
 

cross-posted from: https://lemm.ee/post/58872408

Hey,

So I've been connecting to an ftp server which I worked on with apps like GNOME Builder, and backed up the contents of with Pika Backup, connecting to it via the GNOME Files application, Nautilus, from the Network tab.

Recently, apps stopped being able to read files I opened with the file picker hosted on the ftp server, and after a lot of debugging I realised that was because Nautilus had for some reason switched from mounting the files under /run/user/1000/gvfs/ftp_address to the more abstract path ftp://ftp_address, under the virtual directory computer:///. Now apps can't read those files as they are not mounted under an actual path.

I couldn't find a way in Nautilus, FileZilla, or Dolphin to mount the ftp server files under a specified path /mnt/ftp_username, or even to put it back to the unwieldy but still working path it was under before, using a GUI.

I was recommended by an LLM assistant to use the curlftpfs command, but even with several variations of a command such as the following

sudo curlftpfs -v -o "uid=$UID,gid=$GID" ftp://username:correct%20password@ftp_address /mnt/ftp_username

it always gave the same error

Error setting curl: 

I'm not sure what else to try, could I have some advice please?

top 9 comments
sorted by: hot top controversial new old
[–] Xanza@lemm.ee 3 points 1 month ago (2 children)

Never heard of curlftpfs but this feature is built into rclone;

rclone mount ftp:path/to/remote/ /run/user/1000/gvfs/ftp_address --network-mode
[–] JackGreenEarth@lemm.ee 1 points 1 month ago (1 children)

Thanks, I tried that and it gave a different error

aarvi@fedora:~$ rclone mount ftp://jack101:correct%20password@oncilla.mythic-beasts.com /mnt/jack101 --network-mode
2025/03/19 14:59:22 NOTICE: Config file "/home/aarvi/.config/rclone/rclone.conf" not found - using defaults
2025/03/19 14:59:22 CRITICAL: Failed to create file system for "ftp://jack101:correct%20password@oncilla.mythic-beasts.com": didn't find section in config file

but I will try to fix it

[–] Xanza@lemm.ee 2 points 1 month ago (1 children)

So rclone remotes I have to be added through the rclone configuration. I'm not 100% sure you can Mount a remote the way that you're trying to.

You'll have to run rclone config and then add your FTP server as a remote. Then you'll be able to use it as a mount point. For example if in the configuration you add it as jack_ftp you will then be able to mount it like so:

rclone mount jack_ftp:/ /mnt/jack --network-mode

But as far as I know you first have to add the remote to the rclone configuration.

[–] JackGreenEarth@lemm.ee 1 points 1 month ago (1 children)

Hmm, ok, I tried that, and the command hung without logging anything to the terminal or terminating, and /mnt/jack101 ceased to be a folder, and became a binary file - one I didn't have permission to access

aarvi@fedora:~$ rclone mount jack101: /mnt/jack101/ --network-mode


[–] Xanza@lemm.ee 2 points 1 month ago* (last edited 1 month ago)

Not sure if you setup the remote correctly or not, then.

#> rclone config
Current remotes:

Name                 Type
====                 ====
http                 http
nas                  sftp

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>

Setup your SFTP/FTP remote with the name you want. If it's hanging, only thing I can think of is that you didn't setup the remote correctly. This is how it looks in Windows: https://x0.at/ogeG.png

[–] JackGreenEarth@lemm.ee 1 points 1 month ago

Alright, I added the config, and could use an app such as Rclone shuttle to view the files, but at no point could I set a mount point and I'm still not sure how to do that.

[–] tal@lemmy.today 1 points 1 month ago (1 children)

kagis for error message

What version of curl are you using?

https://github.com/curl/curl/discussions/14299

[–] JackGreenEarth@lemm.ee 2 points 1 month ago* (last edited 1 month ago) (1 children)

Yeah, might well be there's an error with this version - 0.9.2/8.9.1

aarvi@fedora:~$ curlftpfs --version
curlftpfs 0.9.2 libcurl/8.9.1 fuse/2.9
aarvi@fedora:~$ curl --version
curl 8.9.1 (x86_64-redhat-linux-gnu) libcurl/8.9.1 OpenSSL/3.2.4 zlib/1.3.1.zlib-ng libidn2/2.3.8 nghttp2/1.62.1
Release-Date: 2024-07-31
Protocols: file ftp ftps http https ipfs ipns
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz SPNEGO SSL threadsafe UnixSockets

aarvi@fedora:~$ sudo dnf dg curl-8.7.1
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
No match for argument: curl-8.7.1
You can try to add to command line:
  --skip-unavailable to skip unavailable packages
aarvi@fedora:~$ 

But it also doesn't seem the old version is available for download...

[–] tal@lemmy.today 1 points 1 month ago* (last edited 1 month ago)

I haven't ever used curlftpfs, but I imagine that if this is the problem and if Fedora doesn't have a fix, it's probably possible to build it out of tarball and use a wrapper around curlftpfs as a temporary workaround. It doesn't look like curlftpfs lets you specify the path to the curl binary, so probably need to modify PATH prior to invoking curlftpfs.

Like, something along the lines of:

  • build curl 8.8.0 from tarball, stick curl binary in directory (say, in /opt/curl/)

  • Create curlftpfswrapper.sh:

      #!/bin/bash
      export PATH=/opt/curl/:"$PATH"
      exec curlftpfs "$@"
    
  • Drop curlftpfswrapper.sh somewhere in your PATH.

  • Use curlftpfswrapper.sh instead of curlftpfs as long as it's broken.