Using --fuse-allow-other with the Lucid application (Linux)

  • Updated

Introduction

Starting with LucidLink Release 2.7.x it is possible to enable the --fuse-allow-other mechanism for filespaces mounted from the Lucid application. This can be useful for software that runs certain processes under different local users and needs access to the mount point.

Traditionally, this was only possible when mounting a filespace from the command line. This prevented connecting with an SSO user and sharing the mount point resource.

More information on the option can be found by running: lucid help daemon

This article is applicable only to Linux versions of the Lucid application. macOS has --fuse-allow-other enabled by default on all instances launched from the application.

Workflow Overview

  1. Edit the app.json to include the new fuseAllowOther configuration.
  2. Edit /etc/fuse.conf to enable the feature in FUSE.

How-To

It is very important that the steps below are followed exactly and that the formatting of the app.json is checked with extra attention. All editing of the app.json file must be performed with the Lucid application exited completely, failure to do this will result in a fresh app.json.
Warning: Performing the actions below will allow other users, on a multi-user system, to access the Filespace mountpoint. You should carefully consider the implications of this in your specific environment before proceeding. Without the below steps, only the user that creates the mountpoint (and root) will have access to it.
  1. Open the Lucid application and connect to the filespace, this creates the necessary app.json file that we will edit.
  2. Disconnect from the filespace and exit the Lucid application completely.
  3. With elevated privileges, edit /etc/fuse.conf then uncomment (or add) the user_allow_other option. Save and exit the file.
  4. Locate the app.json file in the hidden .lucid directory located in your home folder (by default):
    /home/username/.lucid
  5. Make a copy of the app.json as a backup, since a malformatted app.json will be replaced with a blank one and may generate a new local metadata cache and data cache.
  6. Edit the app.json using your favourite text editor to include the fuseAllowOther option at either the global or per-filespace level (see Example below).
  7. Save the changes.
  8. Open the Lucid application and connect to the filespace.
  • You can specify the fuseAllowOther configuration globally and/or at the filespace level, meaning each filespace can have a unique configuration.
  • Filespace level configuration of fuseAllowOther takes precedence over the global configuration.
  • By default, the Lucid application will connect with fuseAllowOther set to false.
  • fuseAllowOther only accepts true or false values. Incorrect formatting of app.json or misspelling of the value will result in validation failure and app.json will be overwritten with a new app.json.

Example

In the below example, we have set fuseAllowOther to true on the global level but to false specifically for filespace lucid.support. This means that lucid2.support will mount with inherit the fuseAllowOther = true but lucid.support will mount with fuseAllowOther = false.

Pay very close attention to the location of the fuseAllowOther option:

  1. When adding it to the global configuration (above the "filespaces" line) you must ensure to include a , (comma) after true.
  2. When adding it to the filespace level (below the respective "filespace" line) you must ensure to add a , (comma) at the end of the "filespace" line.

If you are unsure your formatting is correct, you can use an online JSON Validation tool to check for mistakes before opening the Lucid application.


A copy of this example is attached to the article, at the bottom.

{
"updater": {
"notificationInterval": 86400,
"askMeLaterIgnoreDuration": 1209600
},
"fuseAllowOther": true,
"filespaces": [
{
"user": "root",
"filespaceName": "lucid2.support",
"lastLogin": 1721046159,
"updatedAt": 1721046159,
"stayConnected": false,
"filespace": "lucid2.support"
},
{
"user": "root",
"filespaceName": "lucid.support",
"lastLogin": 1721046144,
"updatedAt": 1721046144,
"stayConnected": false,
"filespace": "lucid.support",
"fuseAllowOther": false
}
],
"instances": [
{
"filespaceId": "59212923-45e1-4218-9233-c47831e24c2d",
"filespaceName": "lucid2.support",
"instance": 502
},
{
"filespaceId": "0c8216b0-bd06-42e8-afde-1fffd40cc184",
"filespaceName": "lucid.support",
"instance": 501
}
]
}

Troubleshooting

If you see the following message "Failed to mount with --fuse--allow-other: Failed to mount" when connecting to your filespace, this likely indicates that user_allow_other is not present or is commented out in /etc/fuse.conf 

failedToMountFuseAllowOther.png

Your /etc/fuse.conf file should look like this (after uncommenting user_allow_other):

# mount_max = 1000
user_allow_other

If you are unsure about any step of this article, please reach out to our Support team by submitting a ticket.

Resources

You can read more about the FUSE user_allow_other behaviour here.

Was this article helpful?

0 out of 0 found this helpful