trying to run viber.Appimage in konsole creates a fuse error. But even if fusermount problems can be resolved, there might be issues with stability or security breaches in openSUSE (e.g. 15.6)
It might help someone help you if you shared the error message rather than just saying something like “and an error happened”. We can’t see your system, so we don’t know what error you’re getting.
Make sure you include the error (and command you ran) and put it in preformatted text tags (that’s the </> button in the editor toolbar).
thank you for the question:
the error message is as follows:
~/bin> ./viber.AppImage
Error: No suitable fusermount binary found on the $PATH
Error: $FUSERMOUNT_PROG not set
Cannot mount AppImage, please check your FUSE setup.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information
open dir error: No such file or directory
this is on Desktop running Leap 15.6.
However the potentially good news is: on my laptop also running Leap 15.6, there is no such error message (but other non-fatal messages), but the app is actually started successfully.
It had been my understanding that an AppImage should contain everything it needs to run, but that may not actually be the case.
On the working system, run:
sudo zypper se -i fuse
And compare that output to what’s on the non-working system.
You can probably fix this by installing the missing packages - likely libfuse2 (running cnf fusermount will also likely tell you that you need to install the fuse package).
the response on desktop (non-working system) is :
zypper se -i fuse
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
---+------------+-------------------------------------------------------------------+--------
i | fuse | User space File System | package
i | fuse3 | Reference implementation of the "Filesystem in Userspace" | package
i | gvfs-fuse | VFS functionality for GLib | package
i | kio-fuse | Access KIO over the regular filesystem | package
i | libfuse2 | Library of FUSE, the User space File System for GNU/Linux and BSD | package
i | libfuse3-3 | Library of FUSE, the User space File System for GNU/Linux and BSD | package
while on laptop (working system) the output is identical except that in the S column every line has
i+
instead of i
Assuming you’re using bash, try running:
export FUSERMOUNT_PROG="`which fusermount`"
Then try running the AppImage.
If that works, add that export line to your ~/.bashrc. You can also try:
echo $FUSERMOUNT_PROG
on the working system and see what it returns.
the interesting thing is that on the working system
echo $FUSERMOUNT_PROG
produces nothing (response is blank), and obviously is not needed;
on the non-working desktop system (which has different security settings) I get the following results:
~/bin> export FUSERMOUNT_PROG="'which fusermount'"
user@localhost:~/bin> ./viber.AppImage
fuse: failed to exec $FUSERMOUNT_PROG: No such file or directory
checking …
~/bin> echo $FUSERMOUNT_PROG
'which fusermount'
and …
cnf fusermount
Program 'fusermount' is present in package 'fuse', which is installed on your system.
Absolute path to 'fusermount' is '/usr/bin/fusermount'. Please check your $PATH variable to see whether it contains the mentioned path.
but now I get:
~/bin> export FUSERMOUNT_PROG=/usr/bin/fusermount
user@localhost:~/bin> echo $FUSERMOUNT_PROG
/usr/bin/fusermount
user@localhost:~/bin> ./viber.AppImage
fuse: failed to exec $FUSERMOUNT_PROG: Permission denied
Cannot mount AppImage, please check your FUSE setup.
obviously I do not want to grant root access to the AppImage either
The internal tics should be backticks, not straight ones. That will execute the command rather than quote the command.
But doing the export with the specific path will also work, as you saw.
I don’t think the permission denied error is due to not running as root - the point of fuse is that it’s a “filesystem in userspace”, so it should be executable by the user. What happens if you just run the fusermount command?
in the desktop system I get “no permission”:
user@localhost:~> fusermount
bash: /usr/bin/fusermount: Keine Berechtigung
user@localhost:~> dir /usr/bin/fusermount
-rwsr-x--- 1 root trusted 35616 17. Sep 2018 /usr/bin/fusermount
in the laptop system I get:
lap@localhost:~ fusermount
fusermount: missing mountpoint argument
dir /usr/bin/fusermount
-rwsr-xr-x 1 root trusted 35616 17. Sep 2018 /usr/bin/fusermount
so it seems the permissions for fusermount should be adapted. What’s safest ?
I did not read any documentation about this product, but it seems that it the idea is that user user has to be a member of group trusted.
Either changing the permissions or adding the user to the group would suffice. Adding the user to the group will require at least logging out and in again (and may require a reboot, as sometimes adding a user to a group doesn’t seem to take after a logout/login cycle). Changing the permissions takes immediate effect.
As to which is safest - it probably makes no difference, but I might be inclined to run rpm -Vv fuse - checking my system, my user is not in the trusted group, but the permissions are 4755 (rwsr-xr-x) rather than 4750 (rwsr-x—). So it seems that changing the permissions to the expected 4755 (which would be adding o+rx to the permission mask) would work.
That would be sudo chmod o+rx /usr/bin/fusermount
But running the rpm command should tell you if that change will get it back to the expected values. Here’s what I see if I change the permission mask to match your desktop system:
......... c /etc/fuse.conf
..?...... /usr/bin/fusermount
......... /usr/bin/ulockmgr_server
......... /usr/sbin/mount.fuse
......... /usr/share/doc/packages/fuse
......... d /usr/share/doc/packages/fuse/AUTHORS
......... d /usr/share/doc/packages/fuse/ChangeLog
......... d /usr/share/doc/packages/fuse/NEWS
......... d /usr/share/doc/packages/fuse/README.NFS
......... d /usr/share/doc/packages/fuse/README.md
......... /usr/share/licenses/fuse
......... l /usr/share/licenses/fuse/COPYING
......... l /usr/share/licenses/fuse/COPYING.LIB
......... d /usr/share/man/man1/fusermount.1.gz
......... d /usr/share/man/man1/ulockmgr_server.1.gz
......... d /usr/share/man/man8/mount.fuse.8.gz
/usr/bin/fusermount: should be root:trusted 4755 (wrong permissions 4750)
error: %verify(fuse-2.9.9-8.4.x86_64) scriptlet failed, exit status 2
This is on Tumbleweed, but should be the same on Leap AFAIK.
what I did now is the following:
I created a new user who is both a member of the trusted group and the special group of the user
where the AppImage is stored in bin directory. And I made the AppImage executable for the special user group. Now the AppImage can be started successfully.
So whenever I want to start the AppImage, I first consciously log in to the new user belonging to
trusted group , using bash.
And I can keep more restrictive permissions for user with all other activities.
There are other non-fatal messages, which could be dealt later, if necessary.
PROBLEM SOLVED.
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.