Gerenciar usuários no Linux é mais uma das tarefas comuns da administração de sistemas. Normalmente, ambientes de TI corporativos são compostos por servidores, nos quais são gerenciados os arquivos e os próprios usuários da rede.
Quando falamos em gerenciar usuários, no entanto, ficamos diante de vários aspectos que isso engloba. Por exemplo, é preciso saber como se cria usuários e os vincula a uma rede específica, se modificam permissões e senhas, se remove usuários, entre outros procedimentos fundamentais.
Parta tal, vou exemplificar 8 comandos básicos para o gerenciamento de usuários no linux.
1. Exibir todos os usuários existentes na rede
O arquivo que guarda todas as contas disponíveis e respectivas informações de login é o /etc/passwd. Logo, para ter acesso à lista de usuários, fazemos o seguinte: No terminal, utilize o comando: sudo cat /etc/passwd.
2. Registrar e deletar usuários
Existem duas maneiras de se adicionar usuários por meio do terminal, que são os comandos useradd e adduser – embora muito similares e fáceis de confundir, este último é mais prático, visto que o useradd é um binário de baixo nível.
Comando useradd
Começando pelo próprio useradd
, vejamos que não se trata de algo complicado, muito pelo contrário! Ao digitarmos o comando useradd –help
, o terminal retorna todas as opções possíveis para criação de usuário.
![](https://blog.wieczorek.com.br/novo/wp-content/uploads/2022/06/image-5.png)
São mais de 20 opções de ação disponíveis no useradd. Podemos criar diferentes tipos de contas (usuário, grupo, sistema…) aplicando algumas configurações (com ou sem diretório /home, diretórios alternativos, data de expiração…) e, ainda, fazer consultas a contas já existentes (visualizar ID, listar grupos e diretórios…).
Criar os usuários é muito simples. Basta digitar o comando useradd -m nome_do_usuário
. Exemplos:
sudo useradd -m manoel
sudo useradd -m carlos_silva
A opção -m, conforme a tabela acima, cria um diretório /home para o usuário recém-criado. Por isso, sempre que criamos usuários com esse método, um novo diretório é gerado pelo sistema.
2.1 Registrar senhas
Para completar o processo é necessário registrar uma senha para cada usuário. Nesse caso, utiliza-se o comando passwd
, conforme o exemplo a seguir.
sudo passwd manoel
Assim que executado o comando, o terminal retornará um campo no qual deve ser digitada a senha.
2.2 Remover usuários
Para deletar usuários, o comando utilizado é o userdel
, acompanhado do nome do usuário. Com isso, tanto o usuário como todos os itens atrelados à conta dele são removidos, também.
sudo userdel -r manoel
A opção -r é usada para remover a conta declarada no fim do comando.
3. Criar grupos e adicionar usuários a eles
Além de criar usuários, o administrador da rede também pode criar grupos para facilitar o gerenciamento quando há grande quantidade de usuário ou alguma segmentação se faz necessária (departamentos, times, divisões etc.), deixando o acesso a arquivos e recursos mais bem organizado.
Neste exemplo, vamos criar dois tipos de grupos: o primeiro será composto por usuários com permissões para editar arquivos (denominado “diretores”) e o segundo, por usuários que podem fazer a leitura somente (denominado “operadores”). Criando os dois grupos:
addgroup diretores addgroup operadores
Para verificar se os grupos foram indexados corretamente pelo sistema, basta digitar o comando less /etc/group
e verificar se ambos constam na lista.
Agora, vamos supor que Carlos Silva e Manoel sejam, respectivamente, diretor e assistente do departamento financeiro da empresa. Para adicioná-los em seus devidos grupos, digite:
sudo usermod -a -G diretores carlos sudo usermod -a -G operadores manuel
Pronto! Os usuários foram adicionados aos respectivos grupos e eles já podem ser gerenciados pelo administrador.
4. Associar permissões de grupos a diretórios
Uma etapa importante do gerenciamento é a definição de permissões, ou seja, o que cada grupo está autorizado a fazer. Aliás, os grupos existem para isso, também, e não somente para segmentar usuários, pois imagine só o trabalho que não seria estabelecer regras individualmente?
Por ora, sabemos que o user Carlos tem muito mais autonomia para mexer nos arquivos em relação ao user Manoel e demais colaboradores de nível operacional.
Sendo assim, vamos começar a adicionar regras a quem esteja habilitado a editar arquivos; para tanto utilizamos o comando setfacl
, cuja sintaxe é:
setfacl opção X:nome:Y /diretório
A “opção” nada mais é que uma das funcionalidades que a ferramenta setfacl coloca à nossa disposição (digite setfacl –help no terminal para descobrir quais são elas). No campo “X”, insere-se u (para user) ou g (para group). Em “nome”, preenchemos com o nome do user / group, seguido do endereço de diretório a ser usado.
Criando permissões aos grupos
Simplificando o cenário, suponha-se que o administrador do sistema tenha criado um diretório denominado /Arquivos para armazenar os dados gerados pela equipe. A partir disso, ele começa a atribuir permissões aos grupos em relação ao diretório recém-criado. Exemplo:
sudo setfacl -m g:diretores:rwx -R /Arquivos
A opção -m tem a função de modificar as permissões atuais de arquivos no diretório. Já a instrução -R nada mais é que a aplicação das novas regras aos subdiretórios. Processo similar é feito para os demais grupos.
sudo setfacl -m g:operadores:rx -R /Arquivos
Com a configuração acima, o grupo “operadores” conseguirá ler os arquivos guardados no diretório /Arquivos, mas não poderão editá-los de maneira alguma.
5. Atualizar informações de usuário
O comando usermod é a chave para se fazer alterações em diferentes aspectos de uma conta. A sintaxe do comando é simples: usermod opção username. Ela permite, por exemplo, que se determine expiração de conta, insira usuários a grupos de forma suplementar, mudar diretórios do user etc. Abaixo, alguns exemplos.
Configurar data de expiração
Determinar uma data de expiração de uma conta é interessante para evitar o acumulo de usuáros inativos ou, por exemplo, controlar o acesso de um usuário que venha a usar o servidor temporariamente.
Vamos supor que no dia 25 de novembro de 2019 tenha sido criado o usuário Roberto (roberto_E), contratado para estagiar na empresa por seis meses, então o administrador cria a conta de modo que esta seja expirada no fim do vínculo entre as partes. Exemplo:
usermod -e 2020-05-26 roberto_E
Feito isso, digite chage -l roberto_E
para verificar as informações atualizadas da conta. Se as informações correspondem, Roberto terá o login disponível até o fim do último dia de trabalho, já no dia seguinte a conta terá sido expirada.
Alterar o local padrão do diretório /home
Alterar o diretório /home do usuário é muito simples. O ideal é que o processo seja feito em duas etapas; primeiramente, consulta-se o diretório atual e depois, se necessário, configura-se outro local. Exemplo:
grep -E '/home/angela' /etc/passwd
o comando exibe o diretório /home configurado atualmente
usermod -d /var/development/angela
mudamos o diretório /home para o referido caminho
Inserir informações em uma conta
Para fins de organização, é possível acrescentar informações às contas, individualmente, fornecendo outros parâmetros de pesquisa. A seguir, vejamos como vincular o username ao cargo ocupado pelo usuário.
usermod -c "Analista de Testes" laura
Agora, utilize o comando grep para consultar alguns detalhes da conta:
grep -E 'laura' /etc/passwd
laura:x:500:500:Analista de Testes:/home/testes/laura:/bin/sh # resultado exibido
Num ambiente com muitos funcionários tal medida facilita bastante a identificação dos usuários.
Mudar os dados de login
Diversas situações podem nos levar a mudanças no login, desde a adoção de um padrão para criação de usuários à alteração em função de nova ocupação do usuário, entre outros casos.
Vejamos o que fazer, por exemplo, para mudar o username regis para regis_admin:
usermod -l regis_admin regis
Isso fará com que as credenciais sejam modificadas, mas preservando todos os diretórios e outros elementos vinculados à conta desde a sua criação.
Trancar e destrancar uma conta
Trancar contas de usuário é uma medida de segurança consideravelmente útil, pois evita que determinada conta tenha permissões para navegar pelo sistema. Supondo que aconteça um ataque ao servidor por meio de uma credencial que o invasor violou, o bloqueio, por si só, já mitigaria o problema.
Para trancar uma conta, use o comando -L:
usermod -L maria
Utilize a opção -U para destrancar:
usermod -U maria
Apenas para memorizar: o comando -L se refere a lock, que significa “trancar” em português; o -U segue a mesma linha, porém para unlock (destrancar).
6. Consultar user logs (registros do usuário)
Analisar o histórico de atividades do sistema um processo fundamental para estabelecer o controle. Isso porque muitos problemas são compreendidos a partir dos registros de eventos que ocorrem durante a navegação do usuário.
A partir dos registros é que são feitas avaliações de brechas de segurança, por exemplo, entre outras atividades forense ou auditorias. O monitoramento frequente ajuda, também, a identificar potenciais vulnerabilidades antes que estas sirvam de brecha para ataques.
No diretório /var/log, dependendo da distribuição (no exemplo, estou trabalhando com Ubuntu), você encontra o arquivo auth.log, onde é possível consultar todos os logs do usuário. Para acessá-lo, digite: sudo tail /var/log/auth.log
.
7. Localizar arquivos de usuários
Por meio do comando find, conseguimos listar todos os arquivos pertencentes a um determinado usuário de forma rápida e fácil, podendo, inclusive, criar filtros de busca de acordo com o diretório e o formato do arquivo.
Vejamos, abaixo, como encontrar arquivos de texto criados pelo usuário cuja ID é 300:
find /home -uid 300 | tee 300-files.txt
Vale destacar que o mesmo se aplica a grupos. Nesse caso, em vez da ID de usuário (UID) usa-se de grupo (GID).
Como obter e gerenciar informações como UID e GID
Conseguir a ID de usuário ou grupo é muito simples, bastando utilizar o comando id:
id user uid=1000(user), gid=1000(user), groups=1000(user), 4(adm), 24(cdrom), 27(sudo), 30(dip), 46(plugdev), 118(lpadmin), 127(sambashare)
Você pode, também, criar um grupo com GID específico, ou seja, escolhendo como ele será identificado. Exemplo:
groupadd -g 188 group1
Se quiser modificar o GID atual, digite:
groupmod -g 55 group1
Como podemos ver, não há necessidade de gerar informações aleatoriamente, dificultando a memorização de IDs, por exemplo.
8. Transferir permissões de arquivos
O que fazer quando uma série de arquivos pertecentes a um ex-funcionário precisa ser transferido a outro responsável? O administrador de sistemas utiliza o comando chown para executar as redefinições, transferindo o diretório /home para outro user. Exemplo:
chown -R newuser:flavio /home/marcia
A prática vem a calhar, também, quando um novo colaborador é contratado para assumir a ocupação de alguém que foi desligado da empresa. O recém-contratado herda os arquivos do antigo funcionário, não as suas credenciais.
0 comentário