Tudo o que você precisa saber sobre serviços e níveis de execução do Linux

Antes de se aprofundar nos serviços do Linux, é necessário entender os níveis de execução. Um sistema Linux padrão pode ser configurado para inicializar em um dos cinco níveis de execução distintos.

Durante a inicialização, o processo init procura no arquivo /etc/inittab o nível de execução padrão. Após determinar o nível de execução, ele executa os scripts de inicialização necessários para iniciar os serviços do sistema.

A boa notícia é que tanto o nível de execução quanto os serviços lançados podem ser personalizados.

O que são níveis de execução?

Considere os níveis de execução do Linux como “modos” distintos nos quais o sistema operacional opera. Cada um desses modos, ou níveis de execução, possui seu próprio conjunto de processos e serviços que podem ser habilitados ou desabilitados.

O Linux está sempre em algum nível de execução desde o momento em que é inicializado. Esse nível de execução pode mudar enquanto você usa seu computador, com base nos serviços que o sistema operacional requer.

Quantos níveis de execução o Linux tem?

No Linux, existem sete níveis de execução distintos que variam de zero a seis. Como as diferentes distribuições usam os sete níveis de execução de maneiras diferentes, é difícil compilar uma lista clara do que os níveis de execução executam.

Em vez disso, você deve investigar como os níveis de execução funcionam na distribuição que está usando. A lista abaixo, em sua maior parte, descreve como as distribuições Linux normalmente configuram os níveis de execução:

  • O nível de execução 0 encerra o sistema.
  • O nível de execução 1 é um modo de usuário único para tarefas administrativas e de manutenção. Este modo pode alternativamente ser referido como runlevel S.
  • O segundo nível de execução é um modo multiusuário. Este nível de execução não emprega serviços de rede.
  • O nível de execução 3 é um modo multiusuário habilitado para rede. Se você usa um sistema que não inicializa em uma GUI, este é o nível de execução padrão.
  • O nível de execução 4 não é empregado. O usuário pode modificar este nível de execução para atender às suas necessidades.
  • O nível de execução 5 é idêntico ao nível de execução 3, exceto que também inicia um gerenciador de exibição. Se você tem um sistema que inicializa em uma GUI, este é o nível de execução que você está usando.
  • O nível de execução 6 faz com que a máquina seja reinicializada.

Qual é o meu nível de execução atual? (SysV)

Se você quiser saber seu nível de execução atual, execute o comando abaixo:

runlevel

Alternativamente, você também pode executar o comando:

who -r

Para distribuições linux do systemd, a configuração é um pouco diferente. Esta é uma lista de como os níveis de execução no sysv agora se comparam ao systemd:

Para distribuições linux do systemd, a configuração é um pouco diferente. Esta é uma lista de como os níveis de execução no sysv agora se comparam ao systemd:

  • O nível de execução 0 é correspondido por poweroff.target (e runlevel0.target é um link simbólico para poweroff.target ).
  • O nível de execução 1 é correspondido por rescue.target (e runlevel1.target é um link simbólico para rescue.target ).
  • O nível de execução 3 é emulado por multi-user.target (e runlevel3.target é um link simbólico para multi-user.target ).
  • O nível de execução 5 é emulado por graphical.target (e runlevel5.target é um link simbólico para graphical.target ).
  • O nível de execução 6 é emulado por reboot.target (e runlevel6.target é um link simbólico para reboot.target ).
  • Emergency é correspondido por Emergency.target .

Para verificar seu nível de execução atual, execute o comando:

systemctl get-default

Como alterar o nível de execução? (Sysv)

Os níveis de execução podem ser alterados facilmente. Para alterar o privilégio de root do nível de execução é necessário. Execute o comando abaixo para mudar para o nível de execução 3:

init 3

O comando acima alteraria o nível de execução para o nível de execução 3. Alternativamente, você também pode executar o comando usando sudo se não for um usuário root. No systemd, você executaria o comando abaixo para mudar para o nível de execução padrão 3:

systemctl isola multi-user.target

Como alterar o nível de execução padrão?

Para alterar o nível de execução padrão no sysv, execute o comando abaixo:

vi /etc/inittab

Em uma distribuição systemd, o comando seria um pouco diferente. Você pode executar o comando abaixo (mantendo a lista acima em mente):

systemctl isolate multi-user.target

Vulnerabilidades de segurança com níveis de execução do Linux

Conforme declarado anteriormente neste artigo, o objetivo dos níveis de execução do Linux é fornecer a um administrador controle sobre quais serviços são executados em condições específicas.

Esse grau de controle granular sobre seu sistema ajuda na segurança, garantindo que nenhum serviço supérfluo esteja sendo executado. Quando um administrador não sabe quais serviços estão sendo executados, ele pode falhar na proteção dessas superfícies de ataque.

Os métodos descritos neste artigo podem ser usados ​​para definir seu nível de execução padrão e controlar quais aplicativos são executados. Essas soluções não apenas liberarão recursos do sistema, mas também tornarão seu servidor mais seguro.

Lembre-se de usar apenas os níveis de execução necessários. Por exemplo, iniciar o nível de execução 5 faz pouco sentido se você simplesmente deseja utilizar o terminal. Alterar os níveis de execução pode trazer uma série de novos serviços,

O que são serviços?

Um serviço no Linux é um programa ou aplicativo que é executado ou pretende operar em segundo plano. Ou seja, ele é executado sem exigir que o usuário esteja ciente disso o tempo todo.

Em geral, um serviço Linux não possui interface gráfica, o que significa que os usuários não podem interagir com eles por meio de uma interface, e os serviços são iniciados pelo sistema. Serviços de terceiros como o MySQL podem ser configurados para iniciar ou parar junto com o sistema.

Eles correm em segundo plano e aguardam um sinal para iniciar uma determinada atividade.

O que você precisa saber sobre serviços?

Como administrador do sistema, você deve saber como consultar o status dos serviços, interrompê-los e reiniciá-los e personalizá-los para atender às necessidades de sua empresa. Se você estiver operando um servidor DNS, por exemplo, precisará especificar as zonas DNS que deseja servir.

Em geral, quaisquer padrões exclusivos de segurança e backup devem ser aplicados a todos os seus serviços. Os arquivos de configuração dos serviços instalados são encontrados no diretório /etc no Linux.

Embora alguns produtos possam ter editores de configuração gráfica, você quase sempre precisará alterar os arquivos de configuração no linux.

É importante ter em mente quais serviços estão sendo executados, bem como seus arquivos de configuração, para que você possa configurá-los adequadamente.

Como configurar serviços

Sem precisar entrar nas profundezas do seu sistema Linux, há várias maneiras de gerenciar quais serviços começam usando tanto a linha de comando quanto as ferramentas gráficas. Execute o(s) comando(s) abaixo para iniciar e parar serviços no systemd:

$ sudo systemctl start application.service

$ sudo systemctl stop application.service

Para reiniciar ou recarregar serviços, você pode executar os seguintes comandos abaixo:

$ sudo systemctl restart application.service

Você pode usar o comando restart para reiniciar um serviço em execução conforme mostrado acima. Se o programa em questão puder recarregar seus arquivos de configuração sem reiniciar, você pode iniciar o processo com o comando reload conforme mostrado abaixo:

$ sudo systemctl recarregar application.service

O comando abaixo, se disponível, recarregará as configurações no local. Caso contrário, ele reiniciará o serviço para assumir a configuração atualizada:

$ sudo systemctl recarregar ou reiniciar application.service

Abaixo estão os comandos para desabilitar e habilitar diferentes serviços:

$ sudo systemctl enable application.service

$ sudo systemctl disable application.service

Para verificar qualquer serviço ativo em execução, você também pode executar o comando abaixo:

$ systemctl list-units

Para negar completamente a execução de um serviço, digamos mandb nesta instância, você pode usar o comando mask conforme mostrado abaixo:

$ sudo systemctl mask mandb.service

Por que você deve configurar os serviços?

Os serviços realizam tarefas sem envolver o usuário, o que significa que eles executam um trabalho em uma frequência predeterminada ou quando um software específico com um front-end do usuário solicita algo do serviço.

O usuário não está participando do processo de chamada e não está interessado ou precisa saber o que o serviço está fazendo em segundo plano. Por esses motivos surge a importância de configurar seus serviços.

Ter seus serviços funcionando e configurados corretamente para que você não tenha problemas no futuro é essencial para um sistema Linux totalmente funcional e seguro.

Pensamentos finais

Um nível de execução é um estado de inicialização e todo o sistema que define quais serviços do sistema estão operando.

Os serviços são processos essenciais executados em segundo plano, em vez de estarem sob o controle direto de um usuário interativo, aguardando solicitações de outros softwares, ou para realizar tarefas essenciais no momento apropriado.

Saber o que são essas duas coisas, como elas funcionam e como você pode configurá-las corretamente é essencial para manter seu sistema mais seguro. Esperamos que você fique por perto para mais próximos artigos!

FONTE: aqui

1 curtida