Por conta da instalação do serviços a instalação do fluig deve ser feita com o usuário root. Abaixo segue um guia de como alterar as permissões e scripts para executar o fluig e serviços com um usuário fluig.

Estas alterações serão desfeitas após


Instalação/Atualização do fluig

Proceda a instalação ou atualização conforme o processo padrão que exige o usuário root.

Usuário

Para criar o usuário fluig, use o comando abaixo:

$ useradd --system --shell /bin/false fluig

Esse é um usuário de sistema, por este motivo não tem senha ou interpretador de comando, logo não é possível fazer login através dele. Porém se precisar realizar alguma atividade com o login fluig, utilize o comando sudo, com o 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.


Scripts

Para utilizar o usuário adequado, os scripts de inicialização devem ser modificados:

Inicialização do fluig

Altere o arquivo <INSTALAÇÃO DO FLUIG>/appserver/bin/service/wildfly.conf, substitua o valor da variável JBOSS_USER por fluig, e.g:

JBOSS_USER=fluig


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:

RUNAS="fluig"

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

pela linha a seguir:

sudo -u "$RUNAS" "SOLR_INCLUDE=$SOLR_ENV" "$SOLR_INSTALL_DIR/bin/solr" $SOLR_CMD


Altere o arquivo <INSTALAÇÃO DO FLUIG>/solr/bin/solr, substituindo a linha abaixo:

running=`lsof -PniTCP:$SOLR_PORT -sTCP:LISTEN`
if [ -z "$running" ]; then

pela linha a seguir:

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`

por:

CNT=`sudo -u fluig ps -p $PID -o comm= | wc -l`

e a linha:

nohup $NODE_HOME/bin/node /fluig/dev/node/bin/fluig.rt >> $LOG 2>&1 &

por:

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:


Executando serviços em portas protegidas

Alguns sistemas operacionais Linux impedem que um usuário sem permissões de administrativas utilize portas abaixo de 1024, isso impede por exemplo que o fluig aceite conexões na porta 80 e 447.

Isso pode ser mitigado de 2 formas: