You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a preface, I don't know much about how fuse works.
I created a new rust project, referenced this crate and copied the simple example into main.rs. So far so good.
On startup, it fails with
fusermount3: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Of course, the simple option would be to do that, but instead I'm looking for why 'allow_other ' is set at all, because it's not done by me.
Running it with verbose logging shows:
[2024-11-25T23:20:03.185848941Z WARN fuser::session] Given auto_unmount without allow_root or allow_other; adding allow_other, with userspace permission handling
And in session I find:
// If AutoUnmount is requested, but not AllowRoot or AllowOther we enforce the ACL// ourself and implicitly set AllowOther because fusermount needs allow_root or allow_other// to handle the auto_unmount optionlet(file, mount) = if options.contains(&MountOption::AutoUnmount)
&& !(options.contains(&MountOption::AllowRoot)
|| options.contains(&MountOption::AllowOther)){warn!("Given auto_unmount without allow_root or allow_other; adding allow_other, with userspace permission handling");letmut modified_options = options.to_vec();
modified_options.push(MountOption::AllowOther);Mount::new(mountpoint,&modified_options)?
}else{Mount::new(mountpoint, options)?
};
Aha, I think, and add AllowRoot in main.rs.
And ... it still fails with the same error???
A little bit of digging later, I see, in mountoptions.rs:
// Format option to be passed to libfuse or kernelpubfnoption_to_string(option:&MountOption) -> String{match option {// [...]MountOption::AllowOther => "allow_other".to_string(),// AllowRoot is implemented by allowing everyone access and then restricting to// root + owner within fuserMountOption::AllowRoot => "allow_other".to_string(),// [...]}}
So the only option (besides setting 'user_allow_other' in /etc/fuse.conf) is to remove AutoUnmount from main.rs. Which is added unconditionally, despite AllowOther being behind a check of fuse_allow_other_enabled.
Of course this is a trivial issue, just wanted to report it. please feel free to close it.
The text was updated successfully, but these errors were encountered:
As a preface, I don't know much about how fuse works.
I created a new rust project, referenced this crate and copied the simple example into main.rs. So far so good.
On startup, it fails with
Of course, the simple option would be to do that, but instead I'm looking for why 'allow_other ' is set at all, because it's not done by me.
Running it with verbose logging shows:
And in session I find:
Aha, I think, and add
AllowRoot
in main.rs.And ... it still fails with the same error???
A little bit of digging later, I see, in
mountoptions.rs
:So the only option (besides setting 'user_allow_other' in /etc/fuse.conf) is to remove
AutoUnmount
from main.rs. Which is added unconditionally, despiteAllowOther
being behind a check offuse_allow_other_enabled
.Of course this is a trivial issue, just wanted to report it. please feel free to close it.
The text was updated successfully, but these errors were encountered: