CodeGym /Cursos /Docker SELF /Gerenciamento de usuários: comandos adduser, usermod, pas...

Gerenciamento de usuários: comandos adduser, usermod, passwd

Docker SELF
Nível 2 , Lição 1
Disponível

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?

  1. Uma nova entrada é criada no arquivo /etc/passwd para o usuário.
  2. É gerado um diretório home (por exemplo, /home/nome_do_usuario).
  3. Parâmetros básicos são configurados (por exemplo, o shell padrão).
  4. 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:

  1. Definir uma senha para o usuário.
  2. 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
Importante:

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

  1. Vamos adicionar o usuário tester:

    sudo adduser tester
    
  2. Certifique-se de que o usuário foi criado:

    cat /etc/passwd | grep tester
    

Tarefa 2: Configure os parâmetros do usuário

  1. Altere o nome do usuário:

    sudo usermod -l test_user tester
    
  2. Modifique o diretório inicial do usuário:

    sudo usermod -d /home/test_user -m test_user
    
  3. Certifique-se de que as alterações foram aplicadas:

    ls -l /home/
    
  4. Altere o shell do usuário:

    sudo usermod --shell /bin/zsh test_user
    
  5. Verifique os dados atualizados do usuário:

    cat /etc/passwd | grep test_user
    

Tarefa 3: Configure uma nova senha para o usuário

  1. Defina uma senha para o usuário:

    sudo passwd test_user
    
  2. 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"
  1. Primeiro, o comando ls -l é executado, exibindo a lista de arquivos no diretório atual.
  2. A saída do primeiro comando ls é redirecionada como entrada para o segundo comando grep usando o pipe |.
  3. 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
  1. Primeiro, o comando cat file.txt é executado, exibindo o conteúdo do arquivo file.txt.
  2. A saída do primeiro comando cat é redirecionada como entrada para o segundo comando grep usando o pipe |.
  3. O segundo comando filtra as linhas recebidas e exibe apenas as linhas que contêm "Linux".
  4. Em seguida, a saída do segundo comando grep é redirecionada como entrada para o terceiro comando wc usando o pipe |.
  5. O terceiro comando conta o número de linhas recebidas e exibe o resultado.

8. Erros típicos e nuances

  1. 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.

  2. 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.

  3. 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.

  4. Valores de UID e GID. Às vezes, administradores querem definir valores específicos para UID (identificador de usuário) e GID (identificador de grupo) ao criar um usuário. Para isso, usa-se o comando useradd, 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.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION