Lidando com vários usuários que precisam criar núcleos do Solr

0

Temos nosso servidor de aplicativos (glassfish 4) sendo executado sob o usuário glassfish. Nós temos nosso servidor solr 5 rodando sob o usuário solr. Ambos glassfish e solr estão sendo executados no mesmo servidor físico.

Um aplicativo executado dentro do glassfish precisa ser capaz de criar um núcleo solr. Para fazer isso, 1) o aplicativo copia uma configuração de solr predefinida no diretório /var/solr/data . 2) Emite um comando solr por meio da API REST para criar o núcleo solr.

No entanto, a pasta é propriedade de glassfish com as permissões 0755. Devido a essas permissões, o usuário solr não pode criar um diretório de dados e criar o núcleo corretamente.

Se eu definir manualmente a pasta que é enviada para o 0777 e criar o núcleo, o núcleo será criado com êxito.

Qual seria a maneira mais apropriada de resolver isso?

Eu esperaria que o solr tivesse um mecanismo para lidar com esse tipo de situação, mas não consigo encontrar nada.

    
por Kevin Vasko 30.08.2017 / 16:25

1 resposta

1

Você pode adicionar o solr de usuário ao grupo atribuído ao diretório /var/solr/data ou criar seu próprio grupo contendo os usuários solr e glassfish e alterar o grupo atribuído ao diretório para esse novo grupo. Dessa forma, você só precisará definir 775 permissões no diretório.

Como alternativa, você pode usar listas de acesso a arquivos para conceder permissões adicionais de nível de grupo ou usuário. Primeiro, verifique se as FACLs estão ativadas com o comando sudo tune2fs -l /dev/[fs identifier] | grep -i "default mount options" . Se acl não for uma opção à direita, você precisará ativar as FACLs usando sudo tune2fs -o acl /dev/[fs identifier] e, em seguida, reinicializar ou remontar o sistema de arquivos. Quando as FACLs estão ativadas, você pode conceder permissões adicionais com o comando setfacl ; portanto, adicionar um usuário adicional seria setfacl -m "u:[username]:[permissions]" [file/directory] , em que [permissões] são qualquer combinação de rwx e [arquivo / diretório] pode ser o caminho absoluto ou relativo. Por exemplo, setfacl -m "u:solr:rwx" /var/solr/data concederia ao usuário solr permissões completas para a pasta.

E, apenas para conclusão, você pode saber quais arquivos têm uma FACL definida pelo + que aparecerá após as permissões normais listadas quando você faz um ls -l . Em seguida, você pode usar o comando getfacl no arquivo para visualizar as permissões adicionais que ele possui. O -x sinalizador no comando setfacl é usado para remover entradas na lista FACL.

    
por 30.08.2017 / 17:07