Files
apitdn/fluig_rag_docs/Plataforma Documentação técnica/Configuração/Configuração de Ambiente/Configurar ambiente Linux para não utilizar o usuário root.md
T

242 lines
8.3 KiB
Markdown
Raw Normal View History

2026-05-06 13:35:47 -03:00
---
title: Configurar ambiente Linux para não utilizar o usuário root
source: https://tdn.totvs.com/pages/viewpage.action?pageId=454453183
path: \Plataforma Documentação técnica\Configuração\Configuração de Ambiente\Configurar ambiente Linux para não utilizar o usuário root.md
---
- [Objetivo](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Objetivo)
- [Instalação/atualização da plataforma](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Instalação/atualizaçãodaplataforma)
- [Usuário](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Usuário)
- [Limites do usuário](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Limitesdousuário)
- [Scripts](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Scripts)
- [Inicialização da plataforma](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Inicializaçãodaplataforma)
- [Inicialização do serviço de indexação](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Inicializaçãodoserviçodeindexação)
- [Inicialização do serviço de Notificação em tempo Real](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-InicializaçãodoserviçodeNotificaçãoemtempoReal)
- [Permissões](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Permissões)
- [Executando serviços em portas protegidas](#ConfigurarambienteLinuxparanãoutilizarousuárioroot-Executandoserviçosemportasprotegidas)
# Objetivo
---
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**.
Nota:
Por conta da instalação dos serviços, o **processo de instalação** do TOTVS Fluig **deve ser** feito utilizando o **usuário root** e deve ser feito um **primeiro start** também utilizando o **usuário root**.
Nota:
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](../../Instalação e Atualização/Guia de instalação da plataforma/Instalação da plataforma no Linux - Instalador.md).
## Usuário
---
Siga o procedimento abaixo para criar o usuário fluig. Utilize o comando abaixo:
```
$ sudo 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:
```
JBOSS_USER=fluig
```
Somente para a atualização Voyager (2.0) ou superiores:
- Se você utiliza a atualização **Voyager (2.0)** ou **superior** e o seu ambiente utiliza **systemd**, faça também o passo abaixo:
- Altere o arquivo **/etc/systemd/system/fluig.service**  (ou dependendo **/etc/init.d/fluig**), substituindo o valor das variáveis **User** com valor **fluig**, e.g.:
```
User=fluig
```
- Caso for instaldo o serviço fluig na porta abaixo de 1024 e sem proxy reverso, por exemplo na porta 80, precisa adicionar a variável **AmbientCapabilities** com o valor **CAP\_NET\_BIND\_SERVICE** abaixo da variável **User:**
```
User=fluig
AmbientCapabilities=CAP_NET_BIND_SERVICE
```
- Em seguida, execute este comando no terminal:
```
sudo systemctl daemon-reload
```
### 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 **[diretório\_instalação]/solr/bin/solr**, substituindo a linha abaixo:
```
running=$(lsof -t -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/systemd/system/fluig\_RealTime.service** (ou dependendo **/etc/init.d/fluig\_RealTime**):
- Substitua o valor da variável **User** por **fluig**, e.g.:
```
User=fluig
```
- Caso for instalado o serviço fluig\_RealTime na porta abaixo de 1024 e sem proxy reverso, por exemplo na porta 77, precisa adicionar a variável **AmbientCapabilities** com o valor **CAP\_NET\_BIND\_SERVICE** abaixo da variável **User:**
```
User=fluig
AmbientCapabilities=CAP_NET_BIND_SERVICE
```
- Em seguida, execute este comando no terminal:
```
sudo systemctl daemon-reload
```
- Substitua a linha:
```
CNT=`ps -p $PID -o comm= | wc -l`
```
- pela linha abaixo:
```
CNT=`sudo -u fluig ps -p $PID -o comm= | wc -l`
```
- e substitua a linha:
```
nohup $NODE_HOME/bin/node /fluig/dev/node/bin/fluig.rt >> $LOG 2>&1 &
```
- pela linha abaixo:
```
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 (ex: **/opt/fluig/\***)
- Mude o dono de forma recursiva (-R) para o usuário **fluig**
```
sudo chown -R fluig:fluig /opt/fluig
sudo chmod -R 755 /opt/fluig
```
- Volume de dados (ex: **/opt/volume/\***)
- Mude o dono de forma recursiva (-R) para o usuário **fluig**
```
sudo chown -R fluig:fluig /opt/fluig
sudo chmod -R 755 /opt/fluig
```
# 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, como um **[proxy reverso](Proxy reverso.md)** **(recomendado)**.
- Utilizar ferramentas de acordo com a distribuição, como por exemplo: **ufw** ou **firewall-cmd** ou **iptables**.
- **Ubuntu Server 16.04 a 24.04**
- Execute os comandos abaixo para liberar a porta 80 (fluig) e 7777 (fluig\_RealTime):
```
sudo ufw allow 80/tcp
sudo ufw allow 7777/tcp
```
- **Oracle Linux 7.x a 8.7 e 9.5 / CentOS 7.0 a 7.5 / Red Hat Enterprise Linux 9.5**
- Execute os comandos abaixo para liberar a porta 80 (fluig) e 7777 (fluig\_RealTime):
```
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=7777/tcp
sudo firewall-cmd --reload
# Caso o serviço do firewalld esteja parado, execute:
sudo systemctl enable firewalld
sudo systemctl start firewalld
```
- **Oracle Linux 6.4 a 8.7 / CentOS 6.4 a 6.10 / Red Hat Enterprise Linux 6.4 a 8.7**
- Execute os comandos abaixo para liberar a porta 80 (fluig) e 7777 (fluig\_RealTime):
```
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 7777 -j ACCEPT
sudo service iptables save
```