nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
26.26k stars 3.95k forks source link

[Bug]: External Storage-> Internal Share results in `fileNotFound` #40532

Open IamTaoChen opened 10 months ago

IamTaoChen commented 10 months ago

⚠️ This issue respects the following points: ⚠️

Bug description

When I copy an internal share link for External Storage, and send it to others(Internal users). They can not open this link.

image

Steps to reproduce

  1. Admin mounts a SMB for all the users, and allow it share
  2. user(Admin, call A) copy this folder's internal link and send it to another user(B)
  3. B cannot open this link, it shows
  4. A can open this link. image

Expected behavior

B can open this folder by the internal share link

Installation method

Community Docker image

Nextcloud Server version

27

Operating system

None

PHP engine version

None

Web server

None

Database engine version

None

Is this bug present after an update or on a fresh install?

None

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?

Configuration report

No response

List of activated Apps

No response

Nextcloud Signing status

No response

Nextcloud Logs

No response

Additional info

No response

joshtrichards commented 9 months ago

What authentication/credential store method are you using for the External Storage mount?

https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage/auth_mechanisms.html#password-based-mechanisms

And what does the transaction log look like in your nextcloud.log?

IamTaoChen commented 9 months ago

it's 'Global credentials, user entered' and users use SAML for authentication.

When I set it as 'Global Credentials', it works.

follow is the log in nextcloud.log when I set as ''Global credentials, user entered''

{"reqId":"itTrtpydhk5eMHgfA2S7","level":2,"time":"2023-10-03T20:09:35+00:00","remoteAddr":"10.233.20.5","user":"{username}","app":"no app in context","method":"PROPFIND","url":"/remote.php/dav/files/{username}/","message":"Error while getting quota info, using root quota","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36","version":"27.1.1.0","exception":{"Exception":"OCP\\Files\\StorageNotAvailableException","Message":"user or password is not set","Code":0,"Trace":[{"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php","line":545,"function":"getAvailability","class":"OC\\Files\\Storage\\FailedStorage","type":"->","args":[]},{"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php","line":81,"function":"getAvailability","class":"OC\\Files\\Storage\\Wrapper\\Wrapper","type":"->","args":[]},{"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php","line":92,"function":"isAvailable","class":"OC\\Files\\Storage\\Wrapper\\Availability","type":"->","args":[]},{"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Availability.php","line":342,"function":"checkAvailability","class":"OC\\Files\\Storage\\Wrapper\\Availability","type":"->","args":[]},{"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php","line":331,"function":"free_space","class":"OC\\Files\\Storage\\Wrapper\\Availability","type":"->","args":[""]},{"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php","line":331,"function":"free_space","class":"OC\\Files\\Storage\\Wrapper\\Wrapper","type":"->","args":[""]},{"file":"/var/www/html/lib/private/Files/Storage/Wrapper/Wrapper.php","line":331,"function":"free_space","class":"OC\\Files\\Storage\\Wrapper\\Wrapper","type":"->","args":[""]},{"file":"/var/www/html/lib/private/legacy/OC_Helper.php","line":530,"function":"free_space","class":"OC\\Files\\Storage\\Wrapper\\Wrapper","type":"->","args":[""]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php","line":338,"function":"getStorageInfo","class":"OC_Helper","type":"::","args":["/Home",["OC\\Files\\Node\\Folder"],false]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":770,"function":"getQuotaInfo","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":[]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/PropFind.php","line":95,"function":"Sabre\\DAV\\{closure}","class":"Sabre\\DAV\\CorePlugin","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":768,"function":"handle","class":"Sabre\\DAV\\PropFind","type":"->","args":["{DAV:}quota-available-bytes",["Closure"]]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"propFind","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Connector\\Sabre\\Directory"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1052,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["propFind",[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Connector\\Sabre\\Directory"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":984,"function":"getPropertiesByNode","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Connector\\Sabre\\Directory"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1662,"function":"getPropertiesIteratorForPath","class":"Sabre\\DAV\\Server","type":"->","args":["files/{username}",["{DAV:}getlastmodified","{DAV:}getetag","{DAV:}getcontenttype","{DAV:}resourcetype","{http://owncloud.org/ns}fileid","And 17 more entries, set log level to debug to see all entries"],1]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1647,"function":"writeMultiStatus","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\Xml\\Writer",[],"/remote.php/dav/",["d","s","oc","nc"],[]],["Generator"],false]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":346,"function":"generateMultiStatus","class":"Sabre\\DAV\\Server","type":"->","args":[["Generator"],false]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPropFind","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:PROPFIND",[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":365,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Files/Storage/FailedStorage.php","Line":204,"Hint":"Storage is temporarily not available","Previous":{"Exception":"OCP\\Files\\StorageNotAvailableException","Message":"user or password is not set","Code":0,"Trace":[{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":139,"function":"getAvailability","class":"OC\\Files\\Storage\\FailedStorage","type":"->","args":[]},{"function":"OCA\\Files_External\\Config\\{closure}","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":137,"function":"array_map","args":[["Closure"],[["OCA\\Files_External\\Lib\\Storage\\SMB"],["OCA\\Files_External\\Lib\\Storage\\SMB"],["OCA\\Files_External\\Lib\\Storage\\SMB"],"*** sensitive parameters replaced ***",["OCA\\Files_External\\Lib\\Storage\\SMB"]],["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***","*** sensitive parameters replaced ***","*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]]},{"file":"/var/www/html/lib/private/Files/Config/MountProviderCollection.php","line":89,"function":"getMountsForUser","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":[["OC\\User\\User"],["OC\\Files\\Storage\\StorageFactory"]]},{"file":"/var/www/html/lib/private/Files/Config/MountProviderCollection.php","line":138,"function":"getMountsFromProvider","class":"OC\\Files\\Config\\MountProviderCollection","type":"->","args":[["OCA\\Files_External\\Config\\ConfigAdapter"],["OC\\User\\User"],["OC\\Files\\Storage\\StorageFactory"]]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":217,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->","args":[["OC\\User\\User"],["OC\\Files\\Mount\\Manager"],["Closure"]]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":320,"function":"OC\\Files\\{closure}","class":"OC\\Files\\SetupManager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":216,"function":"setupForUserWith","class":"OC\\Files\\SetupManager","type":"->","args":[["OC\\User\\User"],["Closure"]]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":399,"function":"setupForUser","class":"OC\\Files\\SetupManager","type":"->","args":[["OC\\User\\User"]]},{"file":"/var/www/html/lib/private/Files/Mount/Manager.php","line":128,"function":"setupForPath","class":"OC\\Files\\SetupManager","type":"->","args":["/{username}/files",true]},{"file":"/var/www/html/lib/private/Files/View.php","line":1477,"function":"findIn","class":"OC\\Files\\Mount\\Manager","type":"->","args":["/{username}/files"]},{"file":"/var/www/html/lib/private/Files/Node/Folder.php","line":102,"function":"getDirectoryContent","class":"OC\\Files\\View","type":"->","args":["/{username}/files/","",["OC\\Files\\Node\\LazyUserFolder"]]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php","line":262,"function":"getDirectoryListing","class":"OC\\Files\\Node\\Folder","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/TagsPlugin.php","line":227,"function":"getChildren","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":[]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"handleGetProperties","class":"OCA\\DAV\\Connector\\Sabre\\TagsPlugin","type":"->","args":[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Files\\FilesHome"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1052,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["propFind",[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Files\\FilesHome"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":984,"function":"getPropertiesByNode","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Files\\FilesHome"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1662,"function":"getPropertiesIteratorForPath","class":"Sabre\\DAV\\Server","type":"->","args":["files/{username}",["{DAV:}getlastmodified","{DAV:}getetag","{DAV:}getcontenttype","{DAV:}resourcetype","{http://owncloud.org/ns}fileid","And 17 more entries, set log level to debug to see all entries"],1]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1647,"function":"writeMultiStatus","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\Xml\\Writer",[],"/remote.php/dav/",["d","s","oc","nc"],[]],["Generator"],false]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":346,"function":"generateMultiStatus","class":"Sabre\\DAV\\Server","type":"->","args":[["Generator"],false]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPropFind","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:PROPFIND",[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":365,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Files/Storage/FailedStorage.php","Line":204,"Hint":"Storage is temporarily not available","Previous":{"Exception":"InvalidArgumentException","Message":"user or password is not set","Code":0,"Trace":[{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":89,"function":"manipulateStorageConfig","class":"OCA\\Files_External\\Lib\\Backend\\SMB","type":"->","args":["*** sensitive parameters replaced ***",["OC\\User\\User"]]},{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":124,"function":"prepareStorageConfig","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":["*** sensitive parameters replaced ***",["OC\\User\\User"]]},{"function":"OCA\\Files_External\\Config\\{closure}","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/files_external/lib/Config/ConfigAdapter.php","line":122,"function":"array_map","args":[["Closure"],["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***","*** sensitive parameters replaced ***","*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]]},{"file":"/var/www/html/lib/private/Files/Config/MountProviderCollection.php","line":89,"function":"getMountsForUser","class":"OCA\\Files_External\\Config\\ConfigAdapter","type":"->","args":[["OC\\User\\User"],["OC\\Files\\Storage\\StorageFactory"]]},{"file":"/var/www/html/lib/private/Files/Config/MountProviderCollection.php","line":138,"function":"getMountsFromProvider","class":"OC\\Files\\Config\\MountProviderCollection","type":"->","args":[["OCA\\Files_External\\Config\\ConfigAdapter"],["OC\\User\\User"],["OC\\Files\\Storage\\StorageFactory"]]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":217,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->","args":[["OC\\User\\User"],["OC\\Files\\Mount\\Manager"],["Closure"]]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":320,"function":"OC\\Files\\{closure}","class":"OC\\Files\\SetupManager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":216,"function":"setupForUserWith","class":"OC\\Files\\SetupManager","type":"->","args":[["OC\\User\\User"],["Closure"]]},{"file":"/var/www/html/lib/private/Files/SetupManager.php","line":399,"function":"setupForUser","class":"OC\\Files\\SetupManager","type":"->","args":[["OC\\User\\User"]]},{"file":"/var/www/html/lib/private/Files/Mount/Manager.php","line":128,"function":"setupForPath","class":"OC\\Files\\SetupManager","type":"->","args":["/{username}/files",true]},{"file":"/var/www/html/lib/private/Files/View.php","line":1477,"function":"findIn","class":"OC\\Files\\Mount\\Manager","type":"->","args":["/{username}/files"]},{"file":"/var/www/html/lib/private/Files/Node/Folder.php","line":102,"function":"getDirectoryContent","class":"OC\\Files\\View","type":"->","args":["/{username}/files/","",["OC\\Files\\Node\\LazyUserFolder"]]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Directory.php","line":262,"function":"getDirectoryListing","class":"OC\\Files\\Node\\Folder","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/TagsPlugin.php","line":227,"function":"getChildren","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":[]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"handleGetProperties","class":"OCA\\DAV\\Connector\\Sabre\\TagsPlugin","type":"->","args":[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Files\\FilesHome"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1052,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["propFind",[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Files\\FilesHome"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":984,"function":"getPropertiesByNode","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\DAV\\PropFind"],["OCA\\DAV\\Files\\FilesHome"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1662,"function":"getPropertiesIteratorForPath","class":"Sabre\\DAV\\Server","type":"->","args":["files/{username}",["{DAV:}getlastmodified","{DAV:}getetag","{DAV:}getcontenttype","{DAV:}resourcetype","{http://owncloud.org/ns}fileid","And 17 more entries, set log level to debug to see all entries"],1]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":1647,"function":"writeMultiStatus","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\Xml\\Writer",[],"/remote.php/dav/",["d","s","oc","nc"],[]],["Generator"],false]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":346,"function":"generateMultiStatus","class":"Sabre\\DAV\\Server","type":"->","args":[["Generator"],false]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPropFind","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:PROPFIND",[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":365,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/apps/files_external/lib/Lib/Backend/SMB.php","Line":79}},"message":"Error while getting quota info, using root quota","exception":{},"CustomMessage":"Error while getting quota info, using root quota"}}
deanjarnold commented 2 months ago

Same here. Internal Share from User A to User B where:

Public sharing (FileDrop & Shared links files/folders) works fine and so does copying the browser URL to share a file/folder between internal User A & User B. User A & B have all access to the file from NC Browser.

Please let me know if I can provide more information and troubleshoot further.

deanjarnold commented 2 months ago

@joshtrichards & @szaimen Could I provide you more logs/info to help identify the cause?