![Crie sua função First Go](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717870924_Crie-sua-funcao-First-Go-150x150.jpg)
Crie sua função First Go
8 de junho de 2024![Substituído coloca você em um combate preciso de plataforma 2.5D | jogabilidade prática](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717970404_Substituido-coloca-voce-em-um-combate-preciso-de-plataforma-25D-150x150.jpg)
Substituído coloca você em um combate preciso de plataforma 2.5D | jogabilidade prática
9 de junho de 2024Serviços são aplicativos de longa duração que fornecem funcionalidade aos usuários, ao sistema local ou aos sistemas remotos. Os serviços permitem a maioria dos recursos de rede que hoje consideramos garantidos. Exemplos de serviços incluem transferência de e-mail, páginas da web, trabalhos de impressão, compartilhamento de arquivos e muito mais.
Os administradores de sistema são responsáveis pelo gerenciamento de serviços em dispositivos Linux. Essas tarefas incluem configuração, opções de inicialização, segurança, etc.
Você precisará de uma distribuição Linux funcional para trabalhar com os exemplos de gerenciamento de serviços abaixo. Você pode usar um computador físico ou virtual e qualquer distribuição deverá funcionar. Observe que algumas distribuições incluem ferramentas diferentes de outras. As ferramentas descritas aqui são encontradas na maioria das distribuições Linux.
Este artigo sobre serviços se enquadra em uma série maior de artigos sobre Linux que cobrem vários tópicos de administração de sistemas, incluindo identificação de hardware e gerenciamento de processos do sistema. Você pode criar um ambiente de laboratório seguindo as informações no artigo Linux: Companion Lab for Linux Skill Blocks Repository. Se você precisar revisar a sintaxe dos comandos do Linux, leia Entenda a linha de comando do Linux.
Nesta série, também abordamos como escolher uma distribuição e como o kernel Linux interage com o hardware.
Quais são alguns serviços comuns?
Existem vários serviços que você provavelmente encontrará regularmente na maioria dos sistemas Linux. Você provavelmente manipulará ou verificará seu status como parte das tarefas de configuração e solução de problemas.
A lista a seguir oferece alguns exemplos de serviços com os quais você deve se familiarizar e um resumo de suas funções.
-
sshd
: O Secure Shell (ssh) é uma ferramenta essencial de administração remota do Linux.
-
httpd
: O servidor web Apache é um serviço de servidor web padrão em sistemas Linux.
-
firewalld
: o firewall filtra o tráfego de rede que entra e sai do sistema usando regras para determinar o que permitir ou bloquear.
-
cupsd
: O Common Unix Printing System (CUPS) oferece excelente gerenciamento de servidores de impressão.
-
rsyslogd
: o serviço rsyslog gerencia arquivos de log do sistema e do aplicativo.
Vou esclarecer aqui um ponto confuso: a diferença entre daemons, serviços e processos.
Um daemon Linux é executado em segundo plano e não possui uma interface de terminal de controle. Ele responde a eventos ou horários para executar uma tarefa. É um tipo de serviço.
Um serviço Linux responde a solicitações de outros programas. Nem todos os serviços são daemons.
Os processos do Linux são instâncias de código em execução. Daemons e serviços podem ter processos, mas o mesmo pode acontecer com outros softwares, como aplicativos de usuário final, como o navegador Chrome ou o editor de texto Vim.
Verifique o status do serviço
O comando de gerenciamento de serviço em dispositivos Linux modernos é
systemctl
. A sintaxe é comando, subcomando, nome do serviço. Se parece com isso:
systemctl <subcommand> <servicename>
Este exemplo demonstra a sintaxe mostrando o
status
subcomando e o
sshd
Serviços:
$ systemctl status sshd
Você provavelmente precisará usar o
sudo
comando para elevar seus privilégios ao trabalhar com
systemctl
.
Nota: É uma prática de segurança inadequada efetuar logon em um sistema Linux como usuário root (administrador). A maioria dos sistemas força você a fazer logon como um usuário normal e, em seguida, usar o comando sudo (super user do) para elevar seus privilégios. Sua senha pode ser solicitada ao usar
sudo
.
As informações de status permitem que você veja se o serviço está funcionando. Se não estiver em execução, você precisará iniciá-lo para usar sua funcionalidade.
![](https://optimuscloud.com.br/wp-content/uploads/2024/06/Habilidades-em-Linux-gerenciar-servicos-do-sistema.png)
Os resultados de status são divididos em três categorias, com vários estados possíveis por categoria. A lista a seguir exibe alguns dos estados possíveis para cada categoria.
- Estado da Unidade
- ativo (em execução) – O serviço está em execução (geralmente esse é o resultado desejado).
- inativo – O serviço não está em execução (você pode tê-lo interrompido).
- falhou – O serviço falhou e não está em execução.
- Status carregado
- carregado – o arquivo de configuração da unidade foi carregado.
- erro – Falha ao carregar o arquivo de configuração da unidade.
- Status ativado
- ativado – O serviço é iniciado automaticamente com o sistema.
- desativado – O serviço não inicia automaticamente com o sistema.
Exibir subcomandos com a tecla Tab
Comandos como
systemctl
ou
ip
têm muitos subcomandos e pode ser um desafio lembrar de todos eles. Um truque para exibir os subcomandos disponíveis é usar o recurso de preenchimento de guias do Linux. Digite o comando, insira um espaço e pressione a tecla Tab duas vezes. Os subcomandos disponíveis aparecem.
$ systemctl <tab><tab>
Certifique-se de colocar um espaço depois
systemctl
.
De que gerenciamento os serviços precisam?
Que tipos de gerenciamento os serviços precisam? Os serviços exigem configurações de segurança, opções de configuração, acesso a recursos, acesso à rede, etc. O Linux armazena essas configurações em arquivos de texto. Cada serviço possui um ou mais arquivos de texto. Quando o serviço é inicializado (geralmente quando o computador inicializa), ele lê o arquivo de texto e aplica as configurações.
Esse é um detalhe importante. Os serviços usam as configurações encontradas no arquivo de texto quando são iniciados. Se um administrador alterar essas configurações, o serviço deverá ser reiniciado para reler o arquivo de configuração e aplicar as novas configurações.
Portanto, uma das primeiras tarefas do sysadmin para gerenciar serviços é reiniciá-los.
Iniciar, parar ou reiniciar serviços
Use o
systemctl
comando para gerenciar serviços. O comando reconhece muitos subcomandos, incluindo um
restart
opção.
A sintaxe é:
systemctl restart <servicename>
Por exemplo, para reiniciar o
sshd
serviço no sistema, digite:
$ sudo systemctl restart sshd
![](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717946524_431_Habilidades-em-Linux-gerenciar-servicos-do-sistema.png)
O serviço SSH é encerrado e reiniciado. Quando isso acontece, ele aplica todas as configurações encontradas no arquivo de configuração SSH (geralmente encontrado em
/etc/ssh/sshd_config
).
Uma consideração ao reiniciar um serviço de rede como
sshd
ou
httpd
é que ele interrompe as conexões existentes, potencialmente interrompendo a atividade do usuário. Em vez de reiniciar, você pode optar por
reload
a configuração, que mantém as conexões existentes.
$ systemctl reload sshd
Para ambos
restart
e
reload
casos de uso, você provavelmente fez alterações no arquivo de configuração e o serviço precisa implementar as novas configurações.
Você também pode gerenciar serviços manualmente usando o
stop
e
start
subcomandos:
$ sudo systemctl stop sshd
$ sudo systemctl start sshd
![](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717946524_492_Habilidades-em-Linux-gerenciar-servicos-do-sistema.png)
Talvez você queira interromper temporariamente um serviço durante a solução de problemas, auditorias de segurança ou outros eventos ao tentar medir o efeito de um serviço específico no sistema. Uma vez feito isso, você pode iniciar o serviço manualmente novamente.
Observe que muitas vezes não há feedback do sistema com alguns desses comandos. Ele apenas gerencia o serviço.
Configurar serviços para iniciar automaticamente
Iniciar e parar serviços gerenciam apenas seu status durante o tempo de execução atual do sistema (a instância atual do sistema). Os administradores normalmente precisam instruir os serviços para iniciarem automaticamente quando o sistema for inicializado ou para não iniciarem quando o sistema for inicializado. Os subcomandos aplicáveis para essas configurações são
enable
e
disable
.
Para fazer com que o serviço SSH seja iniciado automaticamente quando o sistema for inicializado, digite:
$ sudo systemctl enable sshd
Para evitar que o SSH seja iniciado quando o sistema for inicializado, digite:
$ sudo systemctl disable sshd
Você provavelmente ativaria um serviço após sua instalação inicial.
Exemplo de gerenciamento de serviços
Suponha que você acabou de instalar o serviço web Apache em seu sistema Linux e deseja gerenciá-lo. Depois de editar o arquivo de configuração, sua próxima etapa é a
start
o serviço para que você possa testar se ele funciona conforme o esperado. Uma vez satisfeito,
enable
para que seja iniciado quando o sistema for iniciado. Por fim, confirme se o serviço está em execução usando o
status
subcomando.
Aqui está um exemplo dos comandos:
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
$ systemctl status httpd
Você pode iniciar e ativar um serviço de uma só vez usando o
--now
opções:
$ sudo systemctl enable --now sshd
Verifique a configuração de inicialização dos serviços
O
is-enabled
O subcomando é útil para verificar o status de inicialização de um serviço sem fazer nenhuma alteração.
$ systemctl is-enabled ssh
O comando retorna uma das três respostas:
-
enabled
– O serviço é executado automaticamente.
-
disabled
– O serviço não é executado automaticamente.
-
static
– O serviço é executado quando chamado por outro serviço.
Você também pode ver o estado atual do serviço usando o
is-active
subcomando:
$ systemctl is-active ssh
![](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717946524_634_Habilidades-em-Linux-gerenciar-servicos-do-sistema.png)
Observe que o nome do serviço tem o alias de
ssh
nesta distro.
Impedir o início dos serviços
Use o
mask
e
unmask
subcomandos para impedir ou permitir o início de serviços. O
mask
subcomando impede que o serviço seja iniciado manualmente com o
systemctl start
comando ou sendo chamado por outro serviço. O
unmask
O subcomando inverte a configuração, permitindo que o serviço seja executado se iniciado. Use o mesmo
systemctl
sintaxe que você aprendeu acima com esses dois subcomandos.
Embrulhar
O gerenciamento de serviços é uma função diária para administradores de sistemas Linux. Felizmente, o
systemctl
a sintaxe é bastante direta. Você usará principalmente o
status
e
restart
subcomandos. Não se esqueça de como os serviços descobrem suas definições de configuração: eles leem um arquivo de configuração quando são iniciados e só o leem novamente (para encontrar suas alterações) se você os reiniciar. Isso significa que reiniciar os serviços é uma etapa essencial na configuração do sistema e do serviço.
Embora este artigo não se concentre diretamente na segurança, vale a pena notar que o gerenciamento de serviços é uma parte crítica do fortalecimento. Proteger um sistema inclui remover tudo o que ele não precisa para sua função especificada. Isso significa usar
systemctl
para desativar quaisquer serviços desnecessários ou não utilizados.
Use seu computador de laboratório para praticar o
systemctl
comando e explore os vários subcomandos. Certifique-se de praticar o truque de preenchimento de tabulação para exibir os subcomandos disponíveis que apresentei no início do artigo. Aprender esta ferramenta hoje tornará sua jornada de administração Linux muito mais fácil.
O posto Habilidades em Linux: Gerenciar serviços do sistema apareceu pela primeira vez em The New Stack.