Gerenciamento de usuários: comandos adduser
, usermod
, passwd
1. Por que é importante entender o gerenciamento de usuários?
Hoje vamos mergulhar no gerenciamento de usuários, porque isso é uma parte essencial da administração do Linux. Criar usuários, configurar o ambiente para eles e gerenciar suas senhas — tudo isso vai se tornar uma ferramenta importante pro seu trabalho. Bora lá!
Frequentemente no Linux, vários usuários trabalham no mesmo servidor. O sistema dá a cada um deles certas permissões pra proteger os dados e evitar bagunça. Você precisa saber como adicionar novos usuários (tipo, desenvolvedores na sua equipe), configurar o ambiente deles (por exemplo, mudar o shell) e, se necessário, restringir acesso.
2. Criando um usuário com o comando adduser
O Linux oferece o comando adduser
, que é uma versão mais amigável do comando useradd
. Ele permite criar novos usuários de forma fácil e rápida:
Sintaxe básica
adduser nome_do_usuario
O que acontece ao criar um usuário?
- Uma nova entrada é criada no arquivo
/etc/passwd
para o usuário. - É gerado um diretório home (por exemplo,
/home/nome_do_usuario
). - Parâmetros básicos são configurados (por exemplo, o shell padrão).
- Você será solicitado a inserir uma senha e informações adicionais (como nome, número de telefone — mas estas informações são opcionais).
Exemplo
Vamos criar um novo usuário chamado dev_user
:
sudo adduser dev_user
Após inserir este comando, você será solicitado a:
- Definir uma senha para o usuário.
- Inserir informações adicionais, que podem ser ignoradas pressionando apenas
Enter
.
Verificação
Para garantir que o usuário foi criado, você pode verificar o arquivo /etc/passwd
:
cat /etc/passwd | grep dev_user
Você verá uma linha contendo informações sobre o usuário dev_user
.
3. Configurando um usuário com o usermod
Quando um usuário já foi criado, pode surgir a necessidade de alterar suas configurações. Por exemplo, mudar o nome, definir outro shell ou adicionar a um grupo.
Alterando o nome de usuário
Primeiro, certifique-se de que o usuário não está logado no sistema. Depois, execute o comando:
sudo usermod -l novo_nome velho_nome
Exemplo:
sudo usermod -l developer dev_user
Agora o usuário dev_user
será chamado de developer
. Porém, seu diretório home ainda permanecerá inalterado.
Alterando o shell padrão
Vamos supor que você precise mudar o shell do usuário para /bin/zsh
. Para isso, execute:
sudo usermod --shell /bin/zsh developer
Verifique se o shell foi alterado usando o comando:
cat /etc/passwd | grep developer
Alterando o diretório home
Se você quiser que o novo usuário trabalhe em outro diretório home, faça o seguinte:
sudo usermod -d /novo/caminho developer
se o diretório ainda não existir, use a opção -m
para que ele seja criado e o conteúdo do diretório antigo seja movido:
sudo usermod -d /home/new_developer -m developer
4. Gerenciamento de senhas com o passwd
Definir e mudar senha
Pra definir (ou mudar) a senha de um usuário, usa-se o comando:
sudo passwd nome_do_usuario
Exemplo:
sudo passwd developer
O sistema vai pedir pra você digitar a nova senha duas vezes, pra garantir que você não errou.
Forçar mudança de senha no próximo login
Isso pode ser útil se você estiver criando usuários e quiser que eles mesmos definam sua senha no primeiro login:
sudo passwd -e developer
Depois disso, o usuário developer
, ao entrar no sistema, verá uma mensagem indicando que é necessário mudar a senha.
5. Prática
Tarefa 1: Crie um novo usuário
Vamos adicionar o usuário
tester
:sudo adduser tester
Certifique-se de que o usuário foi criado:
cat /etc/passwd | grep tester
Tarefa 2: Configure os parâmetros do usuário
Altere o nome do usuário:
sudo usermod -l test_user tester
Modifique o diretório inicial do usuário:
sudo usermod -d /home/test_user -m test_user
Certifique-se de que as alterações foram aplicadas:
ls -l /home/
Altere o shell do usuário:
sudo usermod --shell /bin/zsh test_user
Verifique os dados atualizados do usuário:
cat /etc/passwd | grep test_user
Tarefa 3: Configure uma nova senha para o usuário
Defina uma senha para o usuário:
sudo passwd test_user
Force o usuário a trocar a senha no próximo login:
sudo passwd -e test_user
6. Introdução aos Pipes |
no Linux
Os pipes |
são um mecanismo no Unix/Linux que permite passar a saída de um comando (stdout) como entrada (stdin) para outro comando. É uma ferramenta poderosa que possibilita combinar comandos, criando "pipelines" para processamento de dados.
Como funciona?
Quando você usa um pipe entre comandos, o Linux direciona a saída padrão do primeiro comando para a entrada padrão do próximo. Isso permite processar grandes volumes de dados de maneira eficiente, sem a necessidade de arquivos temporários.
Sintaxe:
comando1 | comando2 | comando3
comando1
gera os dados.comando2
processa os dados recebidos.comando3
realiza outro processamento ou salva o resultado.
Exemplo:
Listar arquivos e filtrar por padrão:
ls -l | grep ".txt"
Aqui, ls -l
mostra a lista de arquivos, e grep
filtra apenas os arquivos com extensão .txt
.
Contar linhas que contêm uma palavra específica:
cat file.txt | grep "Linux" | wc -l
O conteúdo do arquivo é exibido, as linhas com "Linux" são localizadas e, em seguida, seu número é contado.
Vantagens dos pipes:
- Simplificação de operações complexas.
- Minimização do uso de arquivos temporários.
- Possibilidade de combinar ferramentas poderosas do Linux para automatizar tarefas.
7. Introdução ao grep no Linux
grep
(Global Regular Expression Print) — é uma utilidade de linha de comando em Unix/Linux para buscar linhas em arquivos que correspondem a um padrão especificado. É amplamente usado para filtrar e procurar dados, graças ao suporte para expressões regulares e configurações flexíveis.
Como funciona o grep
?
grep
recebe como entrada um arquivo de texto (ou entrada padrão), procura por linhas que correspondam ao padrão especificado e as exibe.- Se o padrão não for encontrado, o comando não exibe nada.
Exemplos
Exibir uma lista de arquivos e filtrar por um padrão:
ls -l | grep ".txt"
- Primeiro, o comando
ls -l
é executado, exibindo a lista de arquivos no diretório atual. - A saída do primeiro comando
ls
é redirecionada como entrada para o segundo comandogrep
usando o pipe|
. - O segundo comando filtra as linhas recebidas e exibe apenas as linhas que contêm ".txt".
Contar linhas que contêm uma palavra específica:
cat file.txt | grep "Linux" | wc -l
- Primeiro, o comando
cat file.txt
é executado, exibindo o conteúdo do arquivo file.txt. - A saída do primeiro comando
cat
é redirecionada como entrada para o segundo comandogrep
usando o pipe|
. - O segundo comando filtra as linhas recebidas e exibe apenas as linhas que contêm "Linux".
- Em seguida, a saída do segundo comando
grep
é redirecionada como entrada para o terceiro comandowc
usando o pipe|
. - O terceiro comando conta o número de linhas recebidas e exibe o resultado.
8. Erros típicos e nuances
Erro "user is currently logged in" ao mudar o nome do usuário. Se o usuário estiver logado no sistema, você não conseguirá mudar o nome dele. Certifique-se de que o usuário tenha feito logout.
Erros ao mudar o diretório home. Se esquecer de especificar
-m
, o conteúdo do diretório antigo não será movido para o novo. O usuário pode perder os dados dele.Esqueceu de definir uma senha para o usuário. Depois de criar um usuário com o
adduser
, sempre verifique se ele tem uma senha definida. Sem senha, ele não conseguirá fazer login.Valores de
UID
eGID
. Às vezes, administradores querem definir valores específicos paraUID
(identificador de usuário) eGID
(identificador de grupo) ao criar um usuário. Para isso, usa-se o comandouseradd
, mas isso é assunto para um estudo mais avançado de Linux.
9. Aplicação prática
Imagine: você é o administrador dos servidores da empresa. Os desenvolvedores vêm até você, e cada um exige acesso ao sistema com configurações individuais. Você poderá:
- Criar usuários e atribuir a eles os acessos necessários.
- Configurar o ambiente (por exemplo, shell) de acordo com suas preferências.
- Gerenciar senhas e garantir a segurança.
Esses comandos também serão úteis em uma entrevista para uma vaga de DevOps ou administrador de sistemas. Podem perguntar como você criaria e configuraria usuários, ou até mesmo pedir para você realizar essa tarefa na prática.
Guia rápido: principais comandos
Comando | Descrição |
---|---|
sudo adduser nome_do_usuário |
Cria um novo usuário. |
sudo usermod -l novo antigo |
Altera o nome do usuário. |
sudo usermod --shell caminho nome |
Define o shell padrão. |
sudo usermod -d caminho nome |
Altera o diretório home. |
sudo passwd nome |
Define uma nova senha. |
sudo passwd -e nome |
Obriga a alteração da senha no próximo login. |
Pratique! Linux é sempre mão na massa. Quanto mais você experimentar os comandos, mais fácil será trabalhar com sistemas reais.
GO TO FULL VERSION