[snap] cannot save file under $HOME

Bug #1766192 reported by Olivier Tilloy
64
This bug affects 14 people
Affects Status Importance Assigned to Milestone
snapd
Triaged
Low
Unassigned
firefox (Ubuntu)
Confirmed
Undecided
Unassigned
libreoffice (Ubuntu)
Triaged
Medium
Unassigned

Bug Description

(this was initially reported on the forum: https://forum.snapcraft.io/t/libreoffice-6-0-3-not-so-stable/5032)

When trying to save a file under $HOME (not a subdirectory), the user is presented with an error dialog:

--- Error ---
Error saving the document Untitled 1:
Object not accessible.
The object cannot be accessed
due to insufficient user rights.
[OK]

This is because libreoffice tries to create a lock file of the form: "$HOME/.~lock.Untitled 1.odt", and the home interface doesn't allow writing hidden files (those with a filename that starts with a dot) under $HOME.

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu Bionic Beaver (development branch)"

DESKTOP_SESSION=ubuntu
GTK_MODULES=gail:atk-bridge
HOME=/home/osomon/snap/libreoffice/59
LANG=fr_FR.UTF-8
LC_MONETARY=fr_FR.UTF-8
LC_NAME=fr_FR.UTF-8
LC_NUMERIC=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LD_LIBRARY_PATH=/var/lib/snapd/lib/gl:/var/lib/snapd/lib/gl32:/var/lib/snapd/void:/snap/libreoffice/59/usr/lib/x86_64-linux-gnu::/snap/libreoffice/59/lib:/snap/libreoffice/59/usr/lib:/snap/libreoffice/59/lib/x86_64-linux-gnu:/snap/libreoffice/59/usr/lib/x86_64-linux-gnu:/snap/libreoffice/59/usr/lib/x86_64-linux-gnu/mesa-egl:/snap/libreoffice/59/usr/lib/x86_64-linux-gnu/mesa
PATH=/snap/libreoffice/59/usr/sbin:/snap/libreoffice/59/usr/bin:/snap/libreoffice/59/sbin:/snap/libreoffice/59/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SNAP=/snap/libreoffice/59
SNAP_ARCH=amd64
SNAP_COMMON=/var/snap/libreoffice/common
SNAP_DATA=/var/snap/libreoffice/59
SNAP_LIBRARY_PATH=/var/lib/snapd/lib/gl:/var/lib/snapd/lib/gl32:/var/lib/snapd/void
SNAP_NAME=libreoffice
SNAP_REEXEC=
SNAP_REVISION=59
SNAP_USER_COMMON=/home/osomon/snap/libreoffice/common
SNAP_USER_DATA=/home/osomon/snap/libreoffice/59
SNAP_VERSION=6.0.3.2
TEMPDIR=/tmp
TMPDIR=/run/user/1000/snap.libreoffice
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg/xdg-ubuntu:/etc/xdg
XDG_CURRENT_DESKTOP=ubuntu:GNOME
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop:/var/lib/snapd/desktop
XDG_RUNTIME_DIR=/run/user/1000/snap.libreoffice
XDG_SESSION_DESKTOP=ubuntu
XDG_SESSION_TYPE=x11

Tags: snap
Olivier Tilloy (osomon)
Changed in libreoffice (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Ads20000 (ads20000) wrote :

Presumably this is a snapd policy and should be filed under snapd too? :)

Revision history for this message
Zygmunt Krynicki (zyga) wrote :

I'm marking this as triaged but I'm unsure how to solve it as we don't want to allow write access to dot files in the home directory. Perhaps libreoffice could be updated to create a different pattern for temporary file names when under snap confinement?

Changed in snapd:
status: New → Triaged
importance: Undecided → Low
Revision history for this message
Dominik Hölzl (dhoelzl) wrote :

Hello!

Ubuntu 18.04
libreoffice build ID: libreoffice-6.0.4.2-snap1

I find it weird that opening

* /home/<user>/.hidden/Document.odt DOES NOT WORK (access denied)
* /home/<user>/Documents/.hidden/Document.odt WORKS
* /home/<user>/myfolder/.hidden/Document.odt WORKS

Opening

* /home/<user>/.Hidden.odt DOES NOT WORK (access denied)

Opening

* /home/<user>/Document.odt DOES NOT WORK

 (LibreOffice complains that it can't create a lock file (which is a hidden file), and opens the document only read only)

Opening (non-hidden) documents directly in the home directory is intended to only work read-only?

Seems that accessing hidden files in the first level inside the home directory is denied.
The "home" interface for snaps doesn't allow reading/writing files to .dot directories directly under $HOME. This is to mitigate access to sensitive information. See https://docs.snapcraft.io/reference/interfaces.

We have several applications which access documents under /home/<user>/.hidden which now does not work any more. Of course I could move all the documents to /home/<user>/Documents/.hidden, but this would require all applications to be adjusted for that.

We also have libreoffice extensions which require accessing files in the .hidden directory.
If I move them to the documents directory I have to find out the path of it e.g. via "xdg-user-dir DOCUMENTS", but will that work inside the libreoffice extension with limited access?
I could create a directory with a known name directly in the home directory and put all the files into it, but this could confuse users if there is a directory which contains only a hidden directory.
Unhiding our .hidden directory could also confuse users as we store internal data there.

Any suggestions?

Regards,
Dominik

Revision history for this message
Olivier Tilloy (osomon) wrote :
Changed in libreoffice (Ubuntu):
status: Triaged → Fix Committed
assignee: nobody → Olivier Tilloy (osomon)
Revision history for this message
Olivier Tilloy (osomon) wrote :

As pointed out by Mike in a mailing list conversation (https://lists.freedesktop.org/archives/libreoffice/2018-July/080527.html), changing the lock filename pattern will invalidate the benefits of a cross-applications, cross-versions lock mechanism.

I'm wondering if it would work to ignore the failure to create a lock file instead (and warn the user appropriately).

Changed in libreoffice (Ubuntu):
status: Fix Committed → New
status: New → Triaged
Revision history for this message
Olivier Tilloy (osomon) wrote :

Another occurrence caused by the same root problem: opening e.g. a PNG image file under $HOME/ with libreoffice draw causes the following dialog box to be shown:

  Document Could Not Be Locked

  The lock file could not be created for exclusive access by LibreOffice, due to missing permission to create a lock file on that file location or lack of free disk space.

  [Open Read-Only] [Cancel]

Revision history for this message
Sherif (ali-sherif10) wrote :

Can't open files , at home, with Libreoffice Writer from Snap.

Revision history for this message
Olivier Tilloy (osomon) wrote :

Sherif, where are those files located, exactly?

Revision history for this message
Sherif (ali-sherif10) wrote :

Files are in ~/Documents.

Distributions: Ubuntu 18.10 & Kubuntu. Both are 64-bit.

Revision history for this message
Sherif (ali-sherif10) wrote :

This also applies to Firefox.

Revision history for this message
Sherif (ali-sherif10) wrote :

It seems no Snap package can access ~/.
I recently re-installed Ubuntu 18.10. On previous installation of Ubuntu 18.10, the problem didn't exist, so it may be due to a recent update.

Revision history for this message
Sherif (ali-sherif10) wrote :

I can't read bookmark JSON file in ~/Documents from Firefox also.

Revision history for this message
Sherif (ali-sherif10) wrote :

I fixed it. After installing Ubuntu, I copied data from another partition with `sudo cp -R...`.
Using `sudo chmod a+wrx -R /home/...` didn'r work.
Using `sudo chown ... -R /home/...` worked.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in firefox (Ubuntu):
status: New → Confirmed
Revision history for this message
Ulrich-Lorenz Schlüter (audiomobster) wrote :

I can confirm this with 19.04 (Disco Dingo) and libreoffice 6.2.5.2 latest updates. "Document could not be locked". Is this regression?

Revision history for this message
Marcus Tomlinson (marcustomlinson) wrote :

Hi Ulrich-Lorenz, no regression - the root issue has not yet been resolved.

Revision history for this message
Ulrich-Lorenz Schlüter (audiomobster) wrote :

Just installed LibreOffice 6.3.0.1 with no change.

Olivier Tilloy (osomon)
Changed in libreoffice (Ubuntu):
assignee: Olivier Tilloy (osomon) → nobody
Revision history for this message
Nikolaj Løbner Sheller (nikolaj-l) wrote :

I cannot open attachments in Evolution using Libreoffice in Disco.
I receive the error:
Access to /home/user/.cache/evolution/tmp/<redacted>.xlsx was denied.

Revision history for this message
Olivier Tilloy (osomon) wrote :

Nikolaj, that's a separate issue. Snaps are not allowed to read files in dot folders under $HOME.

Revision history for this message
hackel (hackel) wrote :

This issue also prevents importing CSV files stored in the user's home directory.

You need to come up with a way to allow snap applications to do *any* action the user explicitly initiates. Only automated dotfile access should be blocked.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.