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.

Como alterar o nome de usuário no Linux

Se você não está satisfeito com o atual nome de usuário, é possível alterá-lo de diversas maneiras.
No Linux, o login de usuário está associado a um número de identificação UID (como uma interface), de forma que é possível alterá-lo quantas vezes quiser.
Neste texto, vou descrever como realizar o processo, usando um exemplo no Ubuntu e outro na interface gráfica XFCE, usada em várias outras distro inclusive no Xubuntu e em algumas versões do Fedora.
featured image for change user exhibition name
Por fim, vou mostrar como resolver o problema na linha de comando.
Mudar apenas o nome de usuário é bastante simples. Mas a tarefa vai ganhar complexidade à medida em que você lhe adiciona problemas, tais como alterar também o nome do diretório (ou pasta) do usuário, onde se encontram todos os seus arquivos de configuração e de relacionamento com o sistema.
Alguns resultados imprevistos podem surgir, decorrentes desta mudança — e serão explicados ao final do texto.

Nome de usuário vs Nome de exibição

Harvey KeitelNas imagens que seguem, no decorrer do texto, você irá notar que há referências às duas “entidades”.

  • O nome de exibição é como você, ao cadastrar o seu usuário, escolheu que deveria ser exibido na tela de login e em outros aplicativos
  • O nome de usuário ou username ou login é o que você usa para se autenticar no sistema
  • O UID é uma identificação (interna) que o sistema dá a cada usuário registrado

Portanto, você pode ter um nome de exibição Harvey Keitel e o username h_keitel — e é com este último que você se autentica (se identifica) no sistema.

Como alterar o nome de exibição do usuário no Ubuntu

No Ubuntu, procure pelas configurações de contas e usuários.
No painel, de configurações de informações do usuário, altere o seu nome, clicando em cima dele.
Note que é necessário desbloquear o painel, antes de alterar suas informações — para isto, clique no ícone do cadeado, no canto superior direito do painel.
Veja a imagem ilustrativa, abaixo, para entender como realizar a operação.

Captura de tela do painel de configuração de usuários no ubuntu
Clique para ampliar

Como alterar o nome de exibição do usuário, usando o utilitário gráfico do XFCE

O XFCE é a interface gráfica usada no Xubuntu, no Ubuntu Studio e várias outras distribuições Linux, inclusive alguns sabores do Fedora.
Para chegar ao painel de dados do usuário, abra o menu de configurações do XFCE e selecione o ícone Usuários e grupos

Captura de tela da configuração do XFCE
Clique para ampliar.

Enfim, selecione na lista à esquerda do painel o usuário cujas informações você deseja alterar.
Caixa de diálogo para alterar nome de exibição do usuário no XFCE - Xubuntu
Clique, para ver detalhes.

Como alterar o username no Xubuntu

A alteração do username precisa ser feita na caixa de diálogo Configurações Avançadas — e você precisa estar autenticado (logado) em uma conta diferente (e que tenha privilégios administrativos).
A maneira mais fácil e mais segura de realizar o trabalho, contudo, é:

  • Criar uma nova conta — o que é possível fazer, nesta mesma tela, clicando sobre o botão +, na parte inferior da lista de usuários, à esquerda.
  • Use a conta antiga como backup e vá transferindo, à medida em que precisar, seus arquivos pra nova conta.
  • Após algum tempo, usando apenas a nova conta, quando tiver certeza de que não precisa mais do que restou na anterior, remova-a.
  • Para remover uma conta, selecione o nome de usuário, na lista e clique no botão -.

Fique atento e faça backup de seus dados antes de fazer qualquer alteração. Não será possível recuperar uma conta de usuário apagada, depois.

Como alterar o username na linha de comando do Linux

Este processo, na minha opinião, é o mais simples — mas, nem por isto, livre de problemas.
Proponho que você crie um usuário novo para fazer alguns testes, antes de aplicar a sério os comandos.

adduser franciscojose

Vamos supor que você queira trocar o login franciscojose para fjose.
É necessário usar o comando usermod, com privilégios administrativos. Este comando pode alterar o conteúdo dos arquivos referentes a uma conta — inclusive o /etc/passwd.
A sintaxe do usermod, para alterar um nome de login é usermod -l {login-novo} {login-atual}.
Veja como fica:

sudo usermod -l fjose franciscojose

Para verificar as mudanças, use o comando id:

id fjose

Note, abaixo, que o nome do grupo criado pro usuário continua o mesmo:

uid=1002(fjose) gid=1002(franciscojose) grupos=1002(franciscojose)

Se você pedir uma listagem do diretório /home/franciscojose, vai ver que os arquivos do usuário tiveram a propriedade alterada automaticamente. Mas o nome do grupo a que pertencem, continua o mesmo:

sudo ls -lah /home/franciscojose/
total 28K
drwxr-xr-x 2 fjose franciscojose 4,0K Dez  5 08:50 .
drwxr-xr-x 8 root  root          4,0K Dez  5 08:50 ..
-rw-r--r-- 1 fjose franciscojose  220 Dez  5 08:50 .bash_logout
-rw-r--r-- 1 fjose franciscojose 3,6K Dez  5 08:50 .bashrc
-rw-r--r-- 1 fjose franciscojose  675 Dez  5 08:50 .profile
-rw-r--r-- 1 fjose franciscojose 1,6K Dez  5 08:50 .Xdefaults
-rw-r--r-- 1 fjose franciscojose   14 Dez  5 08:50 .xscreensaver

É possível alterar o nome do grupo com o comando groupmod -n {novo-nome} {antigo-nome} — se houver outros arquivos e diretórios registrados neste grupo no sistema (provavelmente há) eles terão que ser alterados manualmente.
Eu disse que não é fácil — mas o recurso costuma funcionar muito bem em casos de logins novos, que mal começaram a ser usados.
Em casos de usernames, que já estejam em uso há algum tempo, recomendo criar uma nova conta e fazer a transição.

Como alterar o nome do diretório home do usuário

Como a junção das opções -m, -d e -l, é possível alterar o login e, simultaneamente, criar um novo diretório, já contendo os arquivos do velho.
Vamos usar o exemplo de username “harveykeitel” (atual) para “keitel” (novo).

sudo usermod -m -d /home/keitel -l keitel harveykeitel

Para ficar claro, vou seccionar e explicar as opções e os parâmetros do comando acima:

  • -m ou --move-home— precisa ser usada com a opção -d, explicada a seguir. Sua função é mover os arquivos do diretório home referentes ao username antigo pro novo diretório.
  • -d /home/keitel — informa o nome do novo diretório a ser criado.
  • -l — como já foi visto, no tópico anterior, esta opção é que muda o nome do login e o atribui ao novo diretório criado.
  • keitel — este é o novo login.
  • harveykeitel — este é o antigo login.

Se você tiver alguma referência ao nome de diretório antigo em algum lugar do seu sistema, vai ter que encontrá-la e fazer a alteração manualmente.
Por isto a solução é adequada para alterar usernames recentes, que não tiveram muito tempo para criar novos arquivos. Mas pode causar um pouco de dor de cabeça ao sysadmin se se tratar de um usuário antigo e muito ativo.

Problemas que você pode ter ao alterar o nome de usuário

Vários imprevistos podem ocorrer, ao mudar o login de um usuário.
As tarefas no crontab, que estiverem associadas ao username e/ou a seu diretório /home antigo, precisarão ser alteradas uma a uma.
Fique atento a outros aplicativos e links no sistema que façam referências às nomenclaturas passadas e atualize-os.
Outro cuidado necessário: é que você precisa estar logado como outro usuário (com privilégios administrativos). Não dá pra trocar as informações de sistema de um usuário em uso.
Verifique, também se o usuário a ser alterado não tem processos em andamento — o que poderá impedir que a tarefa se realize.
Por fim, entenda que o propósito deste tutorial foi apenas responder a uma pergunta comum. A minha recomendação é de que você não altere logins ou os nomes de seus diretórios home.
A maneira mais segura de fazer esta mudança é criar um novo usuário e começar a usá-lo. Quando sentir que não precisa mais manter qualquer referência ao usuário antigo, remova-o definitivamente.

Referências

  • XFCE — Site oficial em português.
  • Cyberciti — How to change or rename user name and id.
  • FedoraProject — How to change username at terminal.

Como adicionar ou criar um novo usuário no Linux

Elias Praciano - Tux Ninja - The Linux AdministratorEste post não pretende esgotar o assunto a ponto de deixar um administrador de sistemas totalmente satisfeito. Mas vamos tentar fazer a felicidade de usuários comuns, simplificando tudo, com o “jeito universal” de criar novos users.

No terminal

Aprender a criar novos usuários no terminal é útil por que você não fica dependente de variações nas interfaces gráficas dos diversos sabores Linux disponíveis. Desde que você tenha acesso a um terminal e privilégios administrativos, tudo sempre vai dar certo pra você.
Abra um terminal (Ctrl + Alt + T, no Ubuntu) e digite o comando:

sudo adduser ericclapton
Adicionando o usuário `ericclapton' ...
Adicionando novo grupo 'ericclapton' (1002) ...
Adicionando novo usuário `ericclapton' (1002) ao grupo `ericclapton' ...
O diretório pessoal '/home/ericclapton' já existe. Não copiando de '/etc/skel'.
Digite a nova senha UNIX: 
Redigite a nova senha UNIX: 
passwd: senha atualizada com sucesso
Modificando as informações de usuário para ericclapton
Informe o novo valor ou pressione ENTER para aceitar o padrão
	Nome Completo []: Eric Patrick Clapton
	Número da Sala []: 
	Fone de Trabalho []: 
	Fone Residencial []: 
	Outro []: 
A informação está correta? [S/n]

Depois que você forneceu a nova senha do usuário e a confirmou, ele já estará criado. As informações que são pedidas, em seguida, são opcionais. Não é fácil?
Isto já é o suficiente para você adicionar todas as pessoas que precisam ter acesso a um determinado computador em sua casa, na empresa, na escola etc.