Server: Transfering folder ownership breaks shares

Created on 29 Jun 2020  ·  4Comments  ·  Source: nextcloud/server

How to use GitHub

  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Steps to reproduce

  1. Create a folder with user A, share with C.
  2. Transfer the folder to user B.

Expected behaviour

The share should still exist.

Actual behaviour

The folder is not shown as shared, but in the Details -> Sharing tab, the share is still shown, but uneditable (no ••• menu).
shared_after_transfer
occ maintenance:repair does not help.

Server configuration

Operating system: Debian Stable

Web server: Nginx

Database: Postgresql 11.7

PHP version: 7.3.14

Nextcloud version: 18.0.2

Updated from an older Nextcloud/ownCloud or fresh install: Updated

Where did you install Nextcloud from: download.nextcloud.com

Signing status:


Signing status

No errors have been found.

List of activated apps:


App list

Enabled:
  - accessibility: 1.4.0
  - activity: 2.11.0
  - cloud_federation_api: 1.1.0
  - comments: 1.8.0
  - dav: 1.14.0
  - federatedfilesharing: 1.8.0
  - federation: 1.8.0
  - files: 1.13.1
  - files_external: 1.9.0
  - files_pdfviewer: 1.7.0
  - files_rightclick: 0.15.2
  - files_sharing: 1.10.1
  - files_trashbin: 1.8.0
  - files_versions: 1.11.0
  - files_videoplayer: 1.7.0
  - logreader: 2.3.0
  - lookup_server_connector: 1.6.0
  - nextcloud_announcements: 1.7.0
  - notifications: 2.6.0
  - oauth2: 1.6.0
  - password_policy: 1.8.0
  - photos: 1.0.0
  - privacy: 1.2.0
  - provisioning_api: 1.8.0
  - recommendations: 0.6.0
  - richdocuments: 3.5.2
  - serverinfo: 1.8.0
  - settings: 1.0.0
  - sharebymail: 1.8.0
  - survey_client: 1.6.0
  - systemtags: 1.8.0
  - text: 2.0.0
  - theming: 1.9.0
  - twofactor_backupcodes: 1.7.0
  - user_ldap: 1.8.0
  - viewer: 1.2.0
  - workflowengine: 2.0.0
Disabled:
  - admin_audit
  - encryption
  - firstrunwizard
  - support
  - updatenotification

Nextcloud configuration:


Config report

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [...],
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "18.0.2.2",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "forcessl": false,
        "ldapIgnoreNamingRules": false,
        "theme": "",
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "minimum.supported.desktop.version": "1.5",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "filelocking.enabled": "true",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "timeout": 0,
            "password": "***REMOVED SENSITIVE VALUE***"
        },
        "trashbin_retention_obligation": "auto",
        "overwrite.cli.url": "...",
        "logtimezone": "UTC",
        "logfile": "\/opt\/log\/owncloud.log",
        "loglevel": 4,
        "updatechecker": false,
        "ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
        "upgrade.disable-web": true,
        "sharing.enable_share_accept": false,
        "sharing.force_share_accept": false
    }
}

Are you using external storage, if yes which one: no

Are you using encryption: no

Are you using an external user-backend, if yes which one: LDAP

LDAP configuration (delete this part if not used)


LDAP config

+-------------------------------+---------------------------------------------+
| Configuration                 |                                             |
+-------------------------------+---------------------------------------------+
| hasMemberOfFilterSupport      |                                             |
| homeFolderNamingRule          |                                             |
| lastJpegPhotoLookup           | 0                                           |
| ldapAgentName                 | ***                                         |
| ldapAgentPassword             | ***                                         |
| ldapAttributesForGroupSearch  | cn                                          |
| ldapAttributesForUserSearch   | uid;sn;displayName;givenName                |
| ldapBackupHost                |                                             |
| ldapBackupPort                |                                             |
| ldapBase                      | ***                                         |
| ldapBaseGroups                | ***                                         |
| ldapBaseUsers                 | ***                                         |
| ldapCacheTTL                  | 600                                         |
| ldapConfigurationActive       | 1                                           |
| ldapDefaultPPolicyDN          |                                             |
| ldapDynamicGroupMemberURL     |                                             |
| ldapEmailAttribute            | mail                                        |
| ldapExperiencedAdmin          | 0                                           |
| ldapExpertUUIDGroupAttr       |                                             |
| ldapExpertUUIDUserAttr        |                                             |
| ldapExpertUsernameAttr        | uid                                         |
| ldapExtStorageHomeAttribute   |                                             |
| ldapGidNumber                 | gidNumber                                   |
| ldapGroupDisplayName          | cn                                          |
| ldapGroupFilter               | (&(|(objectclass=posixGroup)))              |
| ldapGroupFilterGroups         |                                             |
| ldapGroupFilterMode           | 0                                           |
| ldapGroupFilterObjectclass    | posixGroup                                  |
| ldapGroupMemberAssocAttr      | memberUid                                   |
| ldapHost                      | ***                                         |
| ldapIgnoreNamingRules         |                                             |
| ldapLoginFilter               | (&(|(objectclass=inetOrgPerson))(uid=%uid)) |
| ldapLoginFilterAttributes     |                                             |
| ldapLoginFilterEmail          | 0                                           |
| ldapLoginFilterMode           | 1                                           |
| ldapLoginFilterUsername       | 1                                           |
| ldapNestedGroups              | 0                                           |
| ldapOverrideMainServer        | 0                                           |
| ldapPagingSize                | 500                                         |
| ldapPort                      | 389                                         |
| ldapQuotaAttribute            | ownCloudQuota                               |
| ldapQuotaDefault              | 2 GB                                        |
| ldapTLS                       | 0                                           |
| ldapUserAvatarRule            | default                                     |
| ldapUserDisplayName           | displayname                                 |
| ldapUserDisplayName2          |                                             |
| ldapUserFilter                | (|(objectclass=inetOrgPerson))              |
| ldapUserFilterGroups          |                                             |
| ldapUserFilterMode            | 0                                           |
| ldapUserFilterObjectclass     | inetOrgPerson                               |
| ldapUuidGroupAttribute        | auto                                        |
| ldapUuidUserAttribute         | auto                                        |
| turnOffCertCheck              | 0                                           |
| turnOnPasswordChange          | 0                                           |
| useMemberOfToDetectMembership | 1                                           |
+-------------------------------+---------------------------------------------+

Client configuration

Browser: Firefox Stable, Chromium

Operating system: Debian Stable

Logs

Web server error log


Web server error log

nothing of relevance

Nextcloud log (data/nextcloud.log)


Nextcloud log

{"reqId":"hkkdntq0juum28y686ZT","level":4,"time":"2020-06-29T13:13:47+00:00","remoteAddr":"88.130.56.241","user":"Testuser","app":"webdav","method":"PROPFIND","url":"/remote.php/dav/files/Testuser/Test","message":{"Exception":"OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden","Message":"No read permissions","Code":0,"Trace":[{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php","line":195,"function":"getChildren","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":[]},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":899,"function":"getChildren","class":"Sabre\\DAV\\Tree","type":"->","args":["files/Testuser/Test"]},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":978,"function":"generatePathNodes","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Sabre\\DAV\\PropFind"},[{"__class__":"Sabre\\DAV\\PropFind"},{"__class__":"OCA\\DAV\\Connector\\Sabre\\Directory"}]]},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":1666,"function":"getPropertiesIteratorForPath","class":"Sabre\\DAV\\Server","type":"->","args":["files/Testuser/Test",["{DAV:}resourcetype","{DAV:}getlastmodified","{DAV:}getcontentlength","{DAV:}getetag","{http://owncloud.org/ns}id","{http://owncloud.org/ns}downloadURL","{http://owncloud.org/ns}dDC","{http://owncloud.org/ns}permissions","{http://owncloud.org/ns}checksums","{http://owncloud.org/ns}share-types"],1]},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":355,"function":"generateMultiStatus","class":"Sabre\\DAV\\Server","type":"->","args":[{"__class__":"Generator"},false]},{"function":"httpPropFind","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[{"absoluteUrl":"https://cloud.mydomain.org/remote.php/dav/files/Testuser/Test","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php","line":105,"function":"call_user_func_array","args":[[{"__class__":"Sabre\\DAV\\CorePlugin"},"httpPropFind"],[{"absoluteUrl":"https://cloud.mydomain.org/remote.php/dav/files/Testuser/Test","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":479,"function":"emit","class":"Sabre\\Event\\EventEmitter","type":"->","args":["method:PROPFIND",[{"absoluteUrl":"https://cloud.mydomain.org/remote.php/dav/files/Testuser/Test","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]]},{"file":"/var/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":254,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"absoluteUrl":"https://cloud.mydomain.org/remote.php/dav/files/Testuser/Test","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"/var/www/nextcloud/apps/dav/lib/Server.php","line":319,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/nextcloud/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/nextcloud/remote.php","line":165,"args":["/var/www/nextcloud/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php","Line":263,"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (Linux) mirall/2.6.4-1 (Nextcloud)","version":"18.0.2.2"}

Browser log


Browser log

This is the PROPFIND answer for the folder:
<?xml version="1.0"?> <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns"><d:response><d:href>/remote.php/dav/files/shareuser/Test/</d:href><d:propstat><d:prop><d:getlastmodified>Mon, 29 Jun 2020 12:29:12 GMT</d:getlastmodified><d:getetag>&quot;5ef9de98637e0&quot;</d:getetag><d:resourcetype><d:collection/></d:resourcetype><oc:fileid>14949000</oc:fileid><oc:permissions>RGDNVCK</oc:permissions><oc:size>0</oc:size><nc:has-preview>false</nc:has-preview><nc:mount-type></nc:mount-type><nc:is-encrypted>0</nc:is-encrypted><x1:share-permissions xmlns:x1="http://open-collaboration-services.org/ns">31</x1:share-permissions><oc:tags/><oc:favorite>0</oc:favorite><oc:comments-unread>0</oc:comments-unread><oc:owner-id>shareuser</oc:owner-id><oc:owner-display-name>Share User (shareuser)</oc:owner-display-name><oc:share-types/></d:prop><d:status>HTTP/1.1 200 OK</d:status></d:propstat><d:propstat><d:prop><d:getcontenttype/><d:getcontentlength/></d:prop><d:status>HTTP/1.1 404 Not Found</d:status></d:propstat></d:response></d:multistatus>

0. Needs triage bug needs info

Most helpful comment

Pull request for this issue is at https://github.com/nextcloud/server/pull/22116. Testing is very welcome

All 4 comments

I could not reproduce, please update to the latest release and test this again, since 18.0.2 is heavily outdated :wink:

I have the same issues on NC 19.0.1, nginx, php 7.2.24.
Also:
User A shares files with user B.
Any file ownership (doesn't matter if it is shared or not) moved from A to B.
=> every existing share now points from B to A (owner-field in sharing-table changes from B to A).

It doesn't matter, if the occ-command or the dialog in the browser (settings, share, transfer ownership) was used.

Pull request for this issue is at https://github.com/nextcloud/server/pull/22116. Testing is very welcome

Thats so bad.... All Shares between User A and User B are broken when User A transfer 1 even non shared folder to User B.
How it was:
grafik

How it looks like when 1 folder being transferred:
grafik

This is win!

Was this page helpful?
0 / 5 - 0 ratings