Skip to content

Consider unreadable remote folders (e.g. negative ACLs) #4622

Description

@moscicki

This is partially related to #4621.

When accessing externally mounted storage (or in our case parts of the underlying filesystem) certain folders may not be readable by the current user (because of underlying ACLs preventing the user to read the folder). This case should be properly recognized by the sync client.

The implementation should consider two cases:

Activity

  1. changed the title [-]Consider unreadable folders for the sync protocol[/-] [+]Consider unreadable remote folders[/+] on Mar 30, 2016
  2. guruz commented on Mar 30, 2016

    @guruz
    Contributor

    This discussion should include @DeepDiver1975

  3. moscicki commented on Oct 11, 2016

    @moscicki
    ContributorAuthor

    Here is a related problem to solve: suppose that I change the ACL to give access to a directory which was not readible before. I would assume that a change in ACL should result in an ETAG change and client would PROPFIND again the parent and read the new ACL and access the directory.

  4. hodyroff commented on May 10, 2017

    @hodyroff

    What happens today? What is the current user experience?

  5. moscicki commented on May 12, 2017

    @moscicki
    ContributorAuthor

    The current user experience is bad: in this case the client shows 403 error and aborts current sync run. The it restarts a new run which shows 403 and aborts. And so on.

  6. guruz commented on May 14, 2017

    @guruz
    Contributor

    BTW, we already have handling for temporarily unavailable storages in the client:

    https://github.com/owncloud/client/blob/master/csync/src/csync_update.c#L695

  7. felixboehm commented on May 18, 2017

    @felixboehm
    1. Given a folder is unreadable in a mounted external storage, the sync client must not stop syncing.
    2. In the filecache mark the folder as unreadable, so a PROPFIND or other access will not provide contents. Ideally including information about the permissions.
      @butonic
  8. michaelstingl commented on Jun 20, 2017

    @michaelstingl
    Contributor

    @butonic @tomneedham How can the server-side be improved to handle such situations?

  9. added
    p1-urgentConsider a hotfix release with only that fix (ex: lose trust, money, security issue, ...)
    and removed on Jul 12, 2017
  10. SamuAlfageme commented on Aug 8, 2017

    @SamuAlfageme
    Contributor

    As @guruz mentioned, there's already code to handle 403s returning from the server. Probably what we need is to be certain that the server identifies the "unauthorized"/"unavailable" situations and return the right HTTP code. (See owncloud/core#28598 as example)

  11. cdamken commented on Aug 21, 2017

    @cdamken
    Contributor

    @SamuAlfageme adding a comment to #4622 (comment) Sometimes the oc_filecache has still old files/share that doesn't exist anymore.
    An occ files:scan to that path solves most of the time the problem, but the client loops until the admin update the oc_filescache table.

    A temporarily unavailable in main storage should not be possible. (The server should take care to update the cache table.) - I have often seen in many issues!

    In external storages should probably have a different approach.

  12. felixboehm commented on Mar 20, 2018

    @felixboehm

    @SamuAlfageme will reproduce and describe a solution, maybe best in a new ticket.

  13. added and removed
    p1-urgentConsider a hotfix release with only that fix (ex: lose trust, money, security issue, ...)
    on Apr 9, 2018
  14. SamuAlfageme commented on Nov 1, 2022

    @SamuAlfageme
    Contributor

    Bumping this one as it's relevant to the whole "negative-acl" feature we recently introduced on CERNBox.

  15. changed the title [-]Consider unreadable remote folders[/-] [+]Consider unreadable remote folders (e.g. negative ACLs)[/+] on Nov 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions