linux users

Gerenciamento básico de usuários no Linux

Gestão e controle de usuários, é o básico de qualquer curso ou certificação Linux.
É aqui que o seu conhecimento em administração do sistema começa.
gnu linux tux flag
O texto, que segue, é voltado para usuários iniciantes. Ainda assim, desconfio que algumas dicas podem ser desconhecidas do público mais avançado.
Seja qual for o seu caso, espero que este artigo lhe seja útil.

Como ver informações sobre UID, GID e Grupos no Linux

Caso ainda não saiba, veja os significados destas siglas:

  • UID — User ID ou identificação de usuário.
  • GID — Group ID ou identificação do grupo.

Você pode usar o comando id para obter informações sobre os atributos de grupo, GID e UID:


id justincase 

uid=1000(justincase) gid=1000(justincase) groups=1000(justincase),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),126(sambashare)

É possível filtrar esta informação.
Para saber apenas os nomes dos grupos a que o usuário pertence, use o comando id da seguinte forma:


id --groups --name justincase 

justincase adm cdrom sudo dip plugdev lpadmin sambashare

Como encontrar os arquivos de um usuário

No próximo exemplo, veja como encontrar todos os arquivos que um determinado usuário tem espalhados pelo sistema.


find /home/ -uid 1000 | tee arquivos-do-justin.txt

Este comando irá procurar recursivamente, dentro do diretório /home, por todos os arquivos pertencentes ao usuário de id 1000 (justincase, no meu caso).
Os que forem encontrados, serão gravados dentro do arquivo ‘arquivos-do-justin.txt’.
Para vê-los, use o comando less:


less arquivos-do-justin.txt 

se você substituir a opção ‘-uid’, por ‘-gid’, o comando irá fazer a busca por grupos.

Como transferir a posse de um arquivo entre usuários ou grupos

O comando chown é uma abreviatura para change owner (mude o dono).
Veja um exemplo de seu uso:


chown nome-dono:nome-grupo meu-arquivo.arq

No exemplo, acima, trocamos o usuário e o grupo a que o arquivo pertencia.
Este é o procedimento mais usual — transferir, não somente, a posse para o novo usuário, como também para o novo grupo.
Se quiser apenas transferir a posse de usuário e manter a posse original do grupo, use o comando assim:


chown nome-dono meu-arquivo.arq

Veja um exemplo prático:


chown justincase:justincase .bashrc


Para alterar a posse de todos os arquivos de um diretório, recursivamente, use a opção '-R':


chown -R justincase:justincase /home/musica

Se quiser, você pode envolver o comando find, para fazer o mesmo serviço. Veja este exemplo:


find / -uid 1001 -exec chown -v 1000:1000 {} \;

Execute os comandos para alterar a posse com cuidado, ou você poderá ficar sem acesso a seus arquivos — pelo menos, até mudar de volta à posse original.

Como adicionar e remover usuários no sistema

Além de poder usar as ferramentas GUI (gráficas) para realizar estas tarefas, na linha de comando, as opções são – como quase sempre – mais flexíveis e numerosas.
Veja, quantos comandos: useradd, userdel, usermod, groupadd, groupdel, groupmod, adduser e addgroup.
No Debian e nas distribuições derivadas (como o Ubuntu), há os comandos adduser e addgroup, que são Perl wrappers para os comandos useradd e groupadd.
O comando adduser tem um assistente para ajudar você a criar uma nova conta de usuário no sistema.
Os comandos adduser e addgroup usam as configurações armazenadas no arquivo '/etc/adduser.conf'.
No Red Hat (e derivados), é possível encontrar o adduser, mas ele é apenas um symlink (link simbólico) para o comando useradd. Portanto, nesta distro, ele se comporta como useradd.
Os comandos useradd, userdel, usermod, groupadd, groupdel e groupmod estão presentes em todas as distribuições Linux. O comportamento padrão do comando useradd é definido no arquivo '/etc/default/useradd'.
Você também pode ver as configurações padrão do useradd, com o seguinte comando:


useradd -D

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

Pra criar um usuário novo, com direito a um assistente, use o comando adduser, conforme a imagem.
linux unix useradd
O useradd é um comando de baixo nível e precisa de vários parâmetros e opções, na linha de comando, para fazer o trabalho desejado.
A documentação do Debian, recomenda o adduser, que tem um wizard (assistente) para guiar o trabalho do administrador até a conclusão e criação de um novo usuário no sistema.

Para remover usuários do sistema, use o deluser:


deluser novato

ou use a opção --remove-all-files, para excluir todos os arquivos pertencentes ao usuário do sistema (cuidado!)


deluser --remove-all-files novato

ou use a opção --backup, para criar um arquivo de tar.bz2 com todos os arquivos do usuário dentro, antes de removê-los


deluser --backup novato

Se quiser saber mais sobre o comando tar, leia O comando tar em 9 exemplos.

Como encontrar e derrubar processos de determinados usuários

Se você pretende excluir a conta de um usuário do sistema, pode ser interessante, procurar algum processo remanescente dele, que ainda esteja rodando.
Nos comandos abaixo, vamos descobrir a id do usuário e procurar processos rodando sob esta id:


id novato

uid=1002(novato) gid=1002(novato) groups=1002(novato)

ps U 1002

  PID TTY      STAT   TIME COMMAND
22312 pts/1    S      0:00 bash
22356 pts/1    S+     0:00 nano

Como você pode ver, o usuário 1002 (novato) está rodando o bash e o editor de textos nano.
Use o kill para matar os 2 processos:


kill -9 22312 22356

ps U 1002

PID TTY      STAT   TIME COMMAND

Referências

Leia mais sobre o comando kill.
https://www.linux.com/learn/so-you-think-you-know-linux-user-management.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), desenvolvedor web e geek, nos mais diversos assuntos. Entusiasta de software livre e hacker de LEGO, acredito em repassar meu conhecimento e ajudar as pessoas sempre que for possível.

Um comentário sobre “Gerenciamento básico de usuários no Linux”

  1. Boa tarde.
    Poderia me ajudar? Estou com esse problema, com digito sudo ….
    aparece essa mensagem: sudo: /etc/sudoers.d tem como dono o uid 1000, deveria ser 0
    [sudo] senha para wgtoliveira:
    Após digitar a senha funciona normalmente. Como corrigir esse erro.

    Obrigado

    Washington

Deixe uma resposta

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