External SMB Storage User Access Errors

User Cannot Access its External Storage Mount

Sorry to hear you’re facing problems :slightly_frowning_face:

longer
example
here

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can :heart:

Nextcloud version (16.0.1):
Operating system and version (Red Hat Enterprise Linux Server release 7.4 (Maipo)):
Apache Version ( Apache 2.4.6):
PHP version (7.1.30):

Issue: We have a Nextcloud implementation on our cluster that’s connected to 3 storage systems via the External Storage plug-in. All users authenticate via LDAP. We currently have a user who cannot access her file shares, whereas all other users have no problem accessing them. This issue arose after she had reset her password (stored inside our LDAP database). She can authenticate and log in just fine, but her external directories would not get mapped. Once more the issue is user specific for whatever reason I cannot seem to pinpoint—thanks in advance to anyone willing to offer recommendations :slight_smile:

Sample 1 of error logs in Admin > Logging:

{"reqId":"Xa3URPcBWYS15Jyi64oXygAAAAg","level":1,"time":"2019-10-21T10:52:36-05:00","remoteAddr":"###.###.##.###","user":"65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023","app":"no app in context","method":"GET","url":"\/index.php\/apps\/files_external\/userstorages\/1115?testOnly=true","message":"External storage not available: stat() failed","userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/77.0.3865.120 Safari\/537.36","version":"16.0.1.1"}

Sample 2 of error logs in Admin > Logging:

{"reqId":"XaTsr0s2uzDtdPpMXJByEwAAAAo","level":4,"time":"2019-10-14T16:46:23-05:00","remoteAddr":"###.###.##.###","user":"65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023","app":"webdav","method":"PROPFIND","url":"\/remote.php\/dav\/files\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/work","message":{"Exception":"Sabre\\DAV\\Exception\\ServiceUnavailable","Message":"","Code":0,"Trace":[{"file":"\/var\/www\/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Tree.php","line":76,"function":"getChild","class":"OCA\\DAV\\Connector\\Sabre\\Directory","type":"->","args":["work"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php","line":967,"function":"getNodeForPath","class":"Sabre\\DAV\\Tree","type":"->","args":["files\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/work"]},{"file":"\/var\/www\/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php","line":1666,"function":"getPropertiesIteratorForPath","class":"Sabre\\DAV\\Server","type":"->","args":["files\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/work",["{DAV:}getlastmodified","{DAV:}getetag","{DAV:}getcontenttype","{DAV:}resourcetype","{http:\/\/owncloud.org\/ns}fileid","{http:\/\/owncloud.org\/ns}permissions","{http:\/\/owncloud.org\/ns}size","{DAV:}getcontentlength","{http:\/\/nextcloud.org\/ns}has-preview","{http:\/\/nextcloud.org\/ns}mount-type","{http:\/\/nextcloud.org\/ns}is-encrypted","{http:\/\/open-collaboration-services.org\/ns}share-permissions","{http:\/\/owncloud.org\/ns}tags","{http:\/\/owncloud.org\/ns}favorite","{http:\/\/owncloud.org\/ns}comments-unread","{http:\/\/owncloud.org\/ns}owner-id","{http:\/\/owncloud.org\/ns}owner-display-name","{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:\/\/#####.###.###.###\/remote.php\/dav\/files\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/work","__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:\/\/###.###.###.###\/remote.php\/dav\/files\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/work","__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:\/\/###.###.###.###\/remote.php\/dav\/files\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/work","__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:\/\/###.###.###.###\/remote.php\/dav\/files\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/work","__class__":"Sabre\\HTTP\\Request"},{"__class__":"Sabre\\HTTP\\Response"}]},{"file":"\/var\/www\/nextcloud\/apps\/dav\/lib\/Server.php","line":316,"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":163,"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":225,"CustomMessage":"--"},"userAgent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/77.0.3865.90 Safari\/537.36","version":"16.0.1.1"}

Sample 3 of error logs in Admin > Logging:

{"reqId":"XaTYF3Y28enxDFZ7-Vua2gAAAA8","level":3,"time":"2019-10-14T15:18:32-05:00","remoteAddr":"###.###.##.###","user":"65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023","app":"core","method":"POST","url":"\/index.php\/login?redirect_url=\/index.php\/logout%3Frequesttoken%3DYTMziIkmjPKICi3Qpd9VMnOMTIjcUiFzn9XQkrnyO5U%253D%253AD1VluuYX4rHSeh2%252FxugjWzXtCfi0Pxcc2LCc3OGnU8U%253D","message":"Following symlinks is not allowed ('\/cloud_data\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/files_external' -> '\/project\/shared\/.cloud_data\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/files_external\/' not inside '\/cloud_data\/65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023\/')","userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/77.0.3865.120 Safari\/537.36","version":"16.0.1.1"}

Sample 4 of error logs in Admin > Logging:

{"reqId":"XaTYF3Y28enxDFZ7-Vua2gAAAA8","level":2,"time":"2019-10-14T15:18:32-05:00","remoteAddr":"###.###.##.###","user":"65ae6ecd-6efb-4dc0-a01f-4a083f85b28b_2023","app":"core","method":"POST","url":"\/index.php\/login?redirect_url=\/index.php\/logout%3Frequesttoken%3DYTMziIkmjPKICi3Qpd9VMnOMTIjcUiFzn9XQkrnyO5U%253D%253AD1VluuYX4rHSeh2%252FxugjWzXtCfi0Pxcc2LCc3OGnU8U%253D","message":{"Exception":"OCP\\Files\\ForbiddenException","Message":"Following symlinks is not allowed","Code":0,"Trace":[{"file":"\/var\/www\/nextcloud\/lib\/private\/Files\/Storage\/Local.php","line":125,"function":"getSourcePath","class":"OC\\Files\\Storage\\Local","type":"->","args":["cache"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Files\/Storage\/Wrapper\/Wrapper.php","line":102,"function":"opendir","class":"OC\\Files\\Storage\\Local","type":"->","args":["cache"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Files\/Storage\/Wrapper\/Wrapper.php","line":102,"function":"opendir","class":"OC\\Files\\Storage\\Wrapper\\Wrapper","type":"->","args":["cache"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Files\/View.php","line":1154,"function":"opendir","class":"OC\\Files\\Storage\\Wrapper\\Wrapper","type":"->","args":["cache"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Files\/View.php","line":366,"function":"basicOperation","class":"OC\\Files\\View","type":"->","args":["opendir","\/",["read"]]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Cache\/File.php","line":181,"function":"opendir","class":"OC\\Files\\View","type":"->","args":["\/"]},{"file":"\/var\/www\/nextcloud\/lib\/base.php","line":812,"function":"gc","class":"OC\\Cache\\File","type":"->","args":[]},{"function":"{closure}","class":"OC","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Hooks\/EmitterTrait.php","line":99,"function":"call_user_func_array","args":[{"__class__":"Closure"},["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Hooks\/PublicEmitter.php","line":36,"function":"emit","class":"OC\\Hooks\\BasicEmitter","type":"->","args":["\\OC\\User","postLogin",["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]]},{"file":"\/var\/www\/nextcloud\/lib\/private\/User\/Session.php","line":375,"function":"emit","class":"OC\\Hooks\\PublicEmitter","type":"->","args":["\\OC\\User","postLogin",["*** sensitive parameter replaced ***","*** sensitive parameter replaced ***","*** sensitive parameter replaced ***"]]},{"file":"\/var\/www\/nextcloud\/core\/Controller\/LoginController.php","line":336,"function":"completeLogin","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":166,"function":"tryLogin","class":"OC\\Core\\Controller\\LoginController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":99,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OC\\Core\\Controller\\LoginController"},"tryLogin"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/App.php","line":126,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OC\\Core\\Controller\\LoginController"},"tryLogin"]},{"file":"\/var\/www\/nextcloud\/lib\/private\/AppFramework\/Routing\/RouteActionHandler.php","line":47,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OC\\Core\\Controller\\LoginController","tryLogin",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"core.login.tryLogin"}]},{"function":"__invoke","class":"OC\\AppFramework\\Routing\\RouteActionHandler","type":"->","args":[{"_route":"core.login.tryLogin"}]},{"file":"\/var\/www\/nextcloud\/lib\/private\/Route\/Router.php","line":297,"function":"call_user_func","args":[{"__class__":"OC\\AppFramework\\Routing\\RouteActionHandler"},{"_route":"core.login.tryLogin"}]},{"file":"\/var\/www\/nextcloud\/lib\/base.php","line":975,"function":"match","class":"OC\\Route\\Router","type":"->","args":["\/login"]},{"file":"\/var\/www\/nextcloud\/index.php","line":42,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"\/var\/www\/nextcloud\/lib\/private\/Files\/Storage\/Local.php","Line":387,"CustomMessage":"Exception when running cache gc."},"userAgent":"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/77.0.3865.120 Safari\/537.36","version":"16.0.1.1"}

I don’t know how the mount has exactly been set-up, as personal or as global (admin) mount, but I have in mind that there are different ways to fetch the authentication credentials for a mount. Maybe the credentials have been saved differently as for all other users - just an idea.

Hello j-ed,

Thanks for the idea, would I be able to pull the mount authentication/credentials via the occ command? Would you happen to know some examples?

Thanks again!

Until now I’ve only used the GUI to setup mounts but you should have a look on the
"> ./occ files_external:backends" command which shows you all available of configuration options, like e.g.

      - storage_class: \OCA\Files_External\Lib\Storage\SMB
      - supported_authentication_backends:
        - password::password
        - password::sessioncredentials
        - password::logincredentials
        - password::userprovided
        - password::global
        - password::global::user