Can not connect smb share on EMC Isilon NAS

Nextcloud version (eg, 20.0.5): 24.0.1
Operating system and version (eg, Ubuntu 20.04): Red Hat Enterprise Linux release 8.6
Apache or nginx version (eg, Apache 2.4.25): Apache/2.4.37
PHP version (eg, 7.4): 7.4.19

Hello,

I am trying to setup a Nextcloud server to allow SMB share access.

Accessing shares located on a Windows File server works fine.

But I cant succeed in accessing SMB shares located on a EMC Isilon NAS.

Erros in nextcloud.log are “Icewind\SMB\Exception\ConnectionResetException” and “OCP\Files\StorageAuthException: Storage unauthorized. /” (see below for whole messages)

So it looks like an autorization problem, but I am able to connect and browse this share from command line using smbclient with the same credentials as indicated in nextcloud conf.

So only php-smbclient seems to have a problem with this kind of SMB share.

We have installed php-smbclient with PECL (pecl install smbclient) and added the extension to php.ini, because despite the doc says smbclient only should work, we were getting an error message saying that no backend was available for smb (despite smbclient being in the path).

So the situation is :

  • Access to the share works from command line tool “smbclient”
  • Access to the share does not work from Nextcloud using php-smbclient and it seems there is no way to use smbclient instead of php-smbclient

Do anybody have hint for what I could do to make Nextcloud connect an SMB share on an Isilon NAS, or maybe to force Nextcloud to use smbclient instead of php-smbclient ?

Thanks for you help.

The output of your Nextcloud log in Admin > Logging:

[no app in context] Avertissement: OCP\Files\StorageAuthException: Storage unauthorized. / at <<closure>>

 0. /var/www/html/nextcloud/apps/files_external/lib/Lib/Storage/SMB.php line 198
    OCA\Files_External\Lib\Storage\SMB->throwUnavailable()
 1. /var/www/html/nextcloud/apps/files_external/lib/Lib/Storage/SMB.php line 350
    OCA\Files_External\Lib\Storage\SMB->getFileInfo()
 2. /var/www/html/nextcloud/lib/private/Files/Storage/Common.php line 459
    OCA\Files_External\Lib\Storage\SMB->stat()
 3. /var/www/html/nextcloud/apps/files_external/lib/Lib/Storage/SMB.php line 731
    OC\Files\Storage\Common->test()
 4. /var/www/html/nextcloud/apps/files_external/lib/MountConfig.php line 131
    OCA\Files_External\Lib\Storage\SMB->test()
 5. /var/www/html/nextcloud/apps/files_external/lib/Controller/StoragesController.php line 288
    OCA\Files_External\MountConfig::getBackendStatus("*** sensitive parameters replaced ***")
 6. /var/www/html/nextcloud/apps/files_external/lib/Controller/StoragesController.php line 363
    OCA\Files_External\Controller\StoragesController->updateStorageStatus("*** sensitive parameters replaced ***")
 7. /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 225
    OCA\Files_External\Controller\StoragesController->show()
 8. /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 133
    OC\AppFramework\Http\Dispatcher->executeController()
 9. /var/www/html/nextcloud/lib/private/AppFramework/App.php line 172
    OC\AppFramework\Http\Dispatcher->dispatch()
10. /var/www/html/nextcloud/lib/private/Route/Router.php line 298
    OC\AppFramework\App::main()
11. /var/www/html/nextcloud/lib/base.php line 1023
    OC\Route\Router->match()
12. /var/www/html/nextcloud/index.php line 36
    OC::handleRequest()

GET /nextcloud/index.php/apps/files_external/globalstorages/2?testOnly=true
from 172.18.2.242 by admin at 2022-05-30T09:55:10+00:00


[no app in context] Erreur: Icewind\SMB\Exception\ConnectionResetException: / at <<closure>>

 0. /var/www/html/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php line 75
    Icewind\SMB\Exception\Exception::fromMap()
 1. /var/www/html/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php line 92
    Icewind\SMB\Native\NativeState->handleError()
 2. /var/www/html/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php line 351
    Icewind\SMB\Native\NativeState->testResult()
 3. /var/www/html/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Native/NativeShare.php line 305
    Icewind\SMB\Native\NativeState->getxattr()
 4. /var/www/html/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Native/NativeFileInfo.php line 43
    Icewind\SMB\Native\NativeShare->getAttribute()
 5. /var/www/html/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Native/NativeFileInfo.php line 69
    Icewind\SMB\Native\NativeFileInfo->stat()
 6. /var/www/html/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Native/NativeShare.php line 114
    Icewind\SMB\Native\NativeFileInfo->getSize()
 7. /var/www/html/nextcloud/apps/files_external/lib/Lib/Storage/SMB.php line 193
    Icewind\SMB\Native\NativeShare->stat()
 8. /var/www/html/nextcloud/apps/files_external/lib/Lib/Storage/SMB.php line 350
    OCA\Files_External\Lib\Storage\SMB->getFileInfo()
 9. /var/www/html/nextcloud/lib/private/Files/Storage/Common.php line 459
    OCA\Files_External\Lib\Storage\SMB->stat()
10. /var/www/html/nextcloud/apps/files_external/lib/Lib/Storage/SMB.php line 731
    OC\Files\Storage\Common->test()
11. /var/www/html/nextcloud/apps/files_external/lib/MountConfig.php line 131
    OCA\Files_External\Lib\Storage\SMB->test()
12. /var/www/html/nextcloud/apps/files_external/lib/Controller/StoragesController.php line 288
    OCA\Files_External\MountConfig::getBackendStatus("*** sensitive parameters replaced ***")
13. /var/www/html/nextcloud/apps/files_external/lib/Controller/StoragesController.php line 363
    OCA\Files_External\Controller\StoragesController->updateStorageStatus("*** sensitive parameters replaced ***")
14. /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 225
    OCA\Files_External\Controller\StoragesController->show()
15. /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 133
    OC\AppFramework\Http\Dispatcher->executeController()
16. /var/www/html/nextcloud/lib/private/AppFramework/App.php line 172
    OC\AppFramework\Http\Dispatcher->dispatch()
17. /var/www/html/nextcloud/lib/private/Route/Router.php line 298
    OC\AppFramework\App::main()
18. /var/www/html/nextcloud/lib/base.php line 1023
    OC\Route\Router->match()
19. /var/www/html/nextcloud/index.php line 36
    OC::handleRequest()

GET /nextcloud/index.php/apps/files_external/globalstorages/2?testOnly=true
from 172.18.2.242 by admin at 2022-05-30T09:55:10+00:00

I am self-replying here since I found another difference in the way I can connect (or not) a Windows share and an Isilon share, this time outside of the Nextcloud context.
I don’t know if this is related to the original problem I am trying to solve, but maybe this could help for diagnose purpose.

I tried to mount the shared folder on the linux box using the native mount command.

For a windows share, I can use the following syntax :
mount -t cifs -o vers=2.0,username=myusername //mywinfileserver.mydomain.fr/test-nextcloud /mymountpoint

For an Isilon (NAS) share, the same syntax fails with error 13 permission denied.
To be able to mound the share, I need to add @domain after the username :
mount -t cifs -o vers=2.0,username=myusername@mydomain.fr //mynas.mydomain.fr/test-nextcloud-nas /mymountpoint

Redhat documentation for the mount command says, in case you need to specify a domain you should use the “domain\username” syntax, but I tried other syntaxes like domain\username, domain\\username, domain/username with no success. Only the username@domainame syntax works here.

Of course I tried to setup the username this way in admin console → my external storage, but still no success :confused:
I wonder wether nextcloud code would remove the domain from the username, and what is really sent to the NAS filer…