Installation issue: run hook "install": / has 'other' write 40777

Hello everyone,

I’m having issues with the installation of a snap called microk8s. I opened an issue in that repository, but was pointed here to further debug the issue.

Since then, I’ve realized that this issue also happens with other snap installs, making me think that the problem is indeed more related to something snap-specific rather than microk8s.

Issue Summary

After running the following command:

sudo snap install microk8s --classic

I get the following issue

error: cannot perform the following tasks:
- Run install hook of "microk8s" snap if present (run hook "install": / has 'other' write 40777)

The error repeats when re-running the installer.


systemctl status snapd.service

Generates this snippet:

Feb 21 19:09:43 ub18 snapd[5066]: helpers.go:662: cannot retrieve info for snap "microk8s": cannot find installed snap "microk8s" at revision 383: missing file /snap/microk8s/383/meta/snap.yaml

Furthermore, I ran this:

journalctl -u snapd.service

Which didn’t generate anything noteable, perhaps with this exception:

AppArmor status: apparmor is enabled but some features are missing: dbus, mount, namespaces, network, ptrace, signal

The snapd service is up and running.

Attempted workarounds

  • [x] reinstalling microk8s
  • [x] building the microk8s from source and installing it
  • [x] installing another snap package (juju)

System settings

  • Ubuntu 18.04
  • snap 2.37.2
  • snapd 2.37.2
  • No prior microk8s installs

Other threads

  • This thread seems to have the same error code, but my snapd.service launched correctly, unlike the author of that thread.

Any help would be greatly appreciated!

Why is your root directory world-writable?

Not sure I get what you mean - could you clarify? Is my permission setup the cause of the error?

The error message is complaining about the permissions on the “/” root directory. With the permissions snapd thinks the root directory has, a regular user could create a file named like /whatever. That’s not the default on a Linux system, and has the potential to cause problems.