Segurança básica e identificação de tipos de usuário [Guia Básico]
A administração das contas de usuário no Linux é relativamente fácil. As contas de usuário são gravadas em um arquivo especial chamado /etc/passwd. As senhas são gravadas no /etc/shadow e os grupos de usuários no /etc/group.
Aprenda muito mais com o nosso curso online de segurança no Linux
Arquivo de contas de usuário /etc/passwd
Neste arquivo são gravados os dados como login do usuário, senha, identificador, grupo a que ele pertence, nome do usuário, diretório home e shell.
O formato do passwd é:
Login:senha:UID:GID:comentário:home:shell
Cada elemento que constitui o conteúdo do arquivo /etc/passwd é separado por dois-pontos, na seguinte sequência:
Login: O login é a identificação que o usuário vai utilizar no sistema. Este deve ser único, sem espaços e geralmente uma abreviação do nome. Algumas aplicações necessitam ter um usuário próprio que definirá as permissões de segurança;
Senha: O x representa a senha do usuário. Nos primórdios do Linux a senha criptografada era gravada neste campo no lugar do x. Mas como vários aplicativos e utilitários precisam ter acesso ao conteúdo do arquivo passwd, ele precisa ter permissões de leitura para todos. Logo se percebeu que não era muito seguro, e a senha criptografada foi colocada em outro arquivo especial chamado shadow com permissões de leitura somente para o root. Se a senha não contiver nenhum caracter (vazio), o login poderá ser permitido sem perguntar senha;
ID do usuário (User ID – UID): Este ID é numérico único para cada conta de usuário. Por definição o ID zero (0) é designado para o usuário root, que habilita os seus poderes como administrador do sistema. Por convenção os IDs de 1 a 99 são utilizados para uso administrativo e contas de usuário utilizadas por serviços do sistema;
ID do Grupo (Group ID – GID): Este é o ID numérico do grupo ao qual o usuário pertence. Os usuários podem pertencer a grupos de trabalho para facilitar o compartilhamento de informações e gerência da segurança do sistema. O Group ID – GID precisa estar cadastrado no arquivo de controle de grupo /etc/group;
Nome do usuário ou comentário: Este campo alfanumérico aceita espaços e é reservado para o nome do usuário ou qualquer outra observação pertinente;
Diretório Home: O diretório home é diretório padrão para a conta de usuário. É neste diretório que o dono da conta tem privilégios especiais. Neste campo do arquivo passwd deverá ser colocado o caminho completo do diretório home;
Shell: Neste campo é designado o executável do shell que cada usuário utiliza. O padrão é o Bourne Again Shell /bin/bash. Outros executáveis podem ser utilizados, como o /bin/sh, /bin/tcsh ou qualquer outro programa que será executado logo após o processo de logon do usuário. Existem arquivos especiais como o /bin/false. Este programa simplesmente não faz nada, proibindo o usuário da conta logar no sistema interativamente. Outra possibilidade é o arquivo /sbin/nologin. Este programa também não permite que o usuário entre no sistema de forma interativa, mas exibe uma mensagem que pode ser configurada no arquivo /etc/nologin.txt
As contas de usuário que contém um falso shell como o /bin/false ou /sbin/nologin geralmente são usadas como contas especiais, utilizadas por programas, como, por exemplo, para dar acesso limitado aos arquivos. Por exemplo, o servidor Web Apache utiliza a conta de usuário “apache” para delimitar em quais arquivos o programa httpd pode ser capaz de gravar.
Já a conta do superusuário root tem características especiais, como o UserID é zero e grupo zero. Isso confere à conta superpoderes e acesso ilimitado a todos os recursos do sistema.
Veja um exemplo de contas de usuário no /etc/passwd:
root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/var/www:/sbin/nologin
openvpn:x:219:497:OpenVPN:/etc/openvpn:/sbin/nologin
zabbix:x:500:501::/home/zabbix:/bin/bash
uira:x:501:501::/home/uira:/bin/bash
Arquivo de senhas /etc/shadow
Antigamente o Linux mantinha as senhas criptografadas no segundo campo do arquivo /etc/passwd. Como vários programas precisam de acesso às contas do sistema, as senhas foram movidas para o arquivo /etc/shadow, que não tem permissão de leitura para ninguém.
Além disso, se todos tem acesso ao arquivo com as senhas criptografadas, um ataque do tipo força bruta pode ser feito, gerando combinações de palavras, números e símbolos que são criptografados e comparados com as senhas criptografadas, até que uma comparação seja positiva. Por isso, o fato de apenas o root ter acesso ao /etc/shadow dificulta este ataque.
$ ls -l passwd shadow
-rw-r--r-- 1 root root 1573 out 15 02:12 passwd
---------- 1 root root 760 out 15 02:12 shadow
As senhas no Linux são criptografadas de uma forma que não é possível recuperação usando a engenharia reversa.
Arquivo de grupos /etc/group
Para facilitar a administração das permissões de acesso aos recursos e arquivos do sistema, o Linux faz uso do conceito de grupos de trabalho. Cada usuário faz parte de pelo menos um grupo de trabalho, definido no /etc/passwd através do campo Group ID.
Os Grupos de Trabalho e seus respectivos Group IDs são definidos no arquivo /etc/group:
nomedogrupo:senha:GID:listademembros
Cada coluna separada por dois pontos do arquivo tem o significado a seguir:
Nome do grupo: O nome do grupo precisa ser único no sistema.
Senha do Grupo: Assim como as contas de usuário, os grupos podem também fazer uso de senha para que um usuário possa ingressar nele. As senhas de grupo foram criptografadas e movidas para o arquivo /etc/gshadow. Este campo atualmente contém um “x”;
ID do grupo (Group ID ou GID): Cada grupo precisa de um ID numérico inteiro positivo único. Este ID é referenciado no arquivo /etc/passwd;
Lista de Membros: Os grupos de usuários podem conter um ou mais membros e um usuário pode ser membro de mais de um grupo. Este campo contém uma lista de logins de usuários que fazem parte de um grupo.
Algumas distribuições como o Redhat criam um grupo de usuário para cada usuário criado no sistema. Outras distribuições como o SuSE utilizam o grupo users (GID 100) para todos os usuários.
Veja um exemplo do /etc/group:
root:x:0:root
daemon:x:10:wwwrun,sendmail,squid
users:x:500:uira,carla
Você que é profissional de TI, de suporte ou desenvolvedor, já pensou em aprender Linux de verdade?
E ainda de quebra tirar uma certificação LPI Linux Essentials de quebra?
E melhor ainda, com o melhor curso Online para Linux?
[RICH_REVIEWS_SHOW category=”CURSO” num=”all”]
Faça como essas pessoas e crie sua conta agora.
Aqui você tem tudo para você ter sucesso nas provas de LPI
- Aulas Práticas no Shell
- Flashcards para memorização
- Jogos de Palavras cruzadas
- 06 servidores virtuais na Amazon só pra você
- Mapas Mentais
- Vídeo Glossário
- Simulado preparatório para as provas
- Agenda de aula personalizada
- Exercícios guiados – Laboratórios reais
- Recursos de Aula (anotações e outros)
Quer saber se uma certificação vale a pena ? Saiba por que os salários são bons, e, porque as empresas estão procurando profissionais de Linux.
Você vai entender que os benefícios superam de longe o sacrifício.
E se você já se decidiu, veja nosso Guia de Certificação.
E se quer saber onde realizar as provas, consulte a lista de cidade.
Se quiser saber o idioma das provas, veja esse post.
Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, pode acessar aqui.
Gostou? Compartilhe
Tag:/dev, bash, certificaçãolinux, code, Comptia, developer, empreendedorismo, freesoftware, gnu, hack, Linux, linux essentials, linuxfan, linuxfun, linuxmint, lovelinux, LPI, management, nerd, opensource, php, shell, software, softwarelivre, sql, tech, ti, unix