Objetivo
Por conta da instalação do serviços, o processo de instalação do TOTVS Fluig Plataforma deve ser feito utilizando o usuário root. Abaixo é apresentado um guia sobre como alterar as permissões e scripts para executar a plataforma e os serviços com um usuário fluig.
Estas alterações serão desfeitas após o processo de atualização. |
Instalação/Atualização da plataforma
Proceda a instalação ou atualização conforme o processo padrão que exige o usuário root. Para conferir os passos necessários, acesse Instalação da plataforma no Linux - Instalador.
Usuário
Siga o procedimento abaixo para criar o usuário fluig. Utilize o comando abaixo:
$ useradd --system --shell /bin/false fluig |
Esse é um usuário de sistema, portanto não possuí senha ou interpretador de comando, logo não é possível realizar o login através dele. Porém se precisar realizar alguma atividade com o login fluig utilize o comando sudo no formato abaixo:
$ sudo -u fluig <comando> |
Limites do usuário
Como o usuário criado não é mais o administrador, são definidos automaticamente alguns limites de recursos, que precisam ser expandidos, para tal edite o arquivo /etc/security/limits.conf e insira as linhas abaixo:
fluig hard nofile 500000
fluig soft nofile 500000 |
Lembrando que esse é um valor sugerido, em alguns casos o valor precisa ser aumentado, pois uma mensagem no log "too many open files" irá indicar que o valor limite de arquivos aberto não é suficiente.
Scripts
Para a utilização do usuário adequado é necessário modificar os scripts de inicialização:
Inicialização da plataforma
- Altere o arquivo [diretório_instalação]/appserver/bin/service/wildfly.conf, substitua o valor da variável JBOSS_USER por fluig, e.g:
Inicialização do serviço de indexação
- Altere o arquivo /etc/init.d/fluig_Indexer, substitua o valor da variável RUNAS para fluig, e.g:
- No final do arquivo, substitua o bloco abaixo:
if [ -n "$RUNAS" ]; then
su -c "SOLR_INCLUDE=\"$SOLR_ENV\" \"$SOLR_INSTALL_DIR/bin/solr\" $SOLR_CMD" - "$RUNAS"
else
SOLR_INCLUDE="$SOLR_ENV" "$SOLR_INSTALL_DIR/bin/solr" "$SOLR_CMD"
fi |
sudo -u "$RUNAS" "SOLR_INCLUDE=$SOLR_ENV" "$SOLR_INSTALL_DIR/bin/solr" $SOLR_CMD |
- Altere o arquivo [diretório_instalação]/solr/bin/solr, substituindo a linha abaixo:
running=`lsof -PniTCP:$SOLR_PORT -sTCP:LISTEN`
if [ -z "$running" ]; then |
running=`get_info | grep "\"solr_home\":\"$SOLR_HOME\"" > /dev/null`
if [ "$running" ]; then |
Inicialização do serviço de Notificação em tempo Real
- Altere o arquivo /etc/init.d/fluig_RealTime, substitua a linha:
CNT=`ps -p $PID -o comm= | wc -l` |
CNT=`sudo -u fluig ps -p $PID -o comm= | wc -l` |
nohup $NODE_HOME/bin/node /fluig/dev/node/bin/fluig.rt >> $LOG 2>&1 & |
sudo -u fluig nohup $NODE_HOME/bin/node /fluig/dev/node/bin/fluig.rt >> $LOG 2>&1 & |
Permissões
Para que os serviços consigam acessar os arquivos é necessário que o usuário fluig tenha acesso nos seguintes locais:
- Instalação da plataforma (/opt/fluig/*)
- Pasta de temporários (/tmp)
- Volume de dados
Executando serviços em portas protegidas
Alguns sistemas operacionais Linux impedem que um usuário sem permissões administrativas utilize portas abaixo de 1024, isso impede por exemplo que o fluig aceite conexões na porta 80 e 443.
Isso pode ser mitigado de 2 formas:
- Usar uma ferramenta para realizar a tarefa de redirecionar as requisições para o fluig (recomendado).
- Utilizar a ferramenta setcap para habilitar o executável do java para conectar nas portas baixas.