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/passwdpara 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 testerCertifique-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 testerModifique o diretório inicial do usuário:
sudo usermod -d /home/test_user -m test_userCertifique-se de que as alterações foram aplicadas:
ls -l /home/Altere o shell do usuário:
sudo usermod --shell /bin/zsh test_userVerifique 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_userForce 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
comando1gera os dados.comando2processa os dados recebidos.comando3realiza 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?
greprecebe 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 comandogrepusando 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 comandogrepusando 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 comandowcusando 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
UIDeGID. À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