Um usuário de minha instalação do Nextcloud reclamou que não conseguia ver seus arquivos. Um teste com a conta do usuário, notei que aparecia um popup informando que ele não tinha permissão de acessar aquela pasta, mas … não era permissão no storage.
Depois de me certificar que as permissões do volume de dados estavam corretas, meu palpite passou a ser que por algum motivo o NC tivesse perdido o sincronismo dos arquivos então usando o occ pedi para fazer um scan nos arquivos.
O problema não era exatamente esse, mas deu a dica que precisava para resolver o caso. Curiosamente, com todos os usuários que testei o scan correu normalmente, como nos dois exemplos abaixo.
# occ files:scan USUARIO1
Starting scan for user 1 out of 1 (USUARIO1)
+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 2 | 0 | 00:00:01 |
+---------+-------+--------------+
# occ files:scan USUARIO2
Starting scan for user 1 out of 1 (USUARIO2)
+---------+--------+--------------+
| Folders | Files | Elapsed time |
+---------+--------+--------------+
| 20155 | 231168 | 00:15:28 |
+---------+--------+--------------+
Porém com o usuário que havia reclamado, o resultado foi uma mensagem de erro gigante
occ files:scan USUARIO3
Starting scan for user 1 out of 1 (USUARIO3)
Exception during scan: Host violates local access rules
#0 /var/www/html/lib/private/Http/Client/DnsPinMiddleware.php(136): OC\Http\Client\LocalAddressChecker->ThrowIfLocalIp('10.10.10.90')
#1 /var/www/html/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): OC\Http\Client\DnsPinMiddleware->OC\Http\Client\{closure}(Object(GuzzleHttp\Psr7\Request), Array)
[...]
#26 /var/www/html/console.php(99): OC\Console\Application->run()
#27 /var/www/html/occ(11): require_once('/var/www/html/c...')
#28 {main}
A “exception” apresentada ajudou a encontrar uma configuração no Nextcloud que não precisava antes. A chave “allow_local_remote_servers”.
Segundo li em alguns sites, bastaria adicionar esta chave dentro do arquivo config.php com o valor “true”, então para que tudo corresse de forma segura usei o próprio “occ” para fazer a alteração como segue:
occ config:system:set --type bool --value true -- allow_local_remote_servers
Feito isso, o “occ files:scan” foi concluído com sucesso para o usuário USUARIO3 e também os seus arquivos voltaram a aparecer sem qualquer indício de outros problemas.
Não sei dizer em que momento isso ocorreu. O usuário em questão quase nunca acessa o ambiente então ele não sabia dizer a partir de quando isso começou a ocorrer, mas meu palpite é que isso passou a ocorrer quando eu saltei da versão 20.X para a 22.X, mas isso é só um palpite.
Referência
Violates local access rules in Talk 9 – https://help.nextcloud.com/t/violates-local-access-rules-in-talk-9/84471/2
Nextcloud Collectives – https://collectivecloud.gitlab.io/collectives/development/
Unable to connect onlyoffice to nextcloud – https://forum.yunohost.org/t/unable-to-connect-onlyoffice-to-nextcloud/18333