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.

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.


Emilio Mario Wieczorek

I talk about everything, I discuss everything, but I only support 🇧🇼Grêmio. 💻IT Manager, 🎮Gamer and 👽Jedi (or Sith, depending on the day).

0 comentário

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *