===== Exemplos de Comandos para Gerenciamento de Usuários e Grupos no Linux ===== ==== Nível Básico ==== * **Adicionar um novo usuário com `useradd`:** - sudo useradd novo_usuario - Cria um novo usuário chamado `novo_usuario` no sistema. * **Adicionar um novo usuário e criar o diretório home com `useradd`:** - sudo useradd -m novo_usuario - Cria um novo usuário e também cria automaticamente o diretório home (`/home/novo_usuario`). * **Alterar o shell padrão de um usuário com `usermod`:** - sudo usermod -s /bin/bash usuario - Altera o shell padrão do usuário `usuario` para `/bin/bash`. * **Alterar o diretório home de um usuário com `usermod`:** - sudo usermod -d /novo_caminho_home usuario - Modifica o diretório home do usuário `usuario` para `/novo_caminho_home`. * **Adicionar um novo grupo com `groupadd`:** - sudo groupadd novo_grupo - Cria o grupo `novo_grupo` no sistema. * **Verificar informações de ID de um usuário com `id`:** - id usuario - Exibe o UID, GID e os grupos aos quais o usuário `usuario` pertence. * **Alterar a senha de um usuário com `passwd`:** - sudo passwd usuario - Define ou altera a senha do usuário `usuario`. * **Trocar para o usuário root com `su`:** - su - - Faz login como root (superusuário). * **Executar um comando como superusuário com `sudo`:** - sudo comando - Executa o comando com privilégios administrativos (root). ==== Nível Intermediário ==== * **Adicionar um novo usuário com um shell específico com `useradd`:** - sudo useradd -m -s /bin/zsh novo_usuario - Cria um novo usuário `novo_usuario` com o shell `/bin/zsh` como padrão. * **Definir a data de expiração de uma conta com `useradd`:** - sudo useradd -e 2024-12-31 usuario_temporario - Cria um usuário temporário cuja conta expira em `31 de dezembro de 2024`. * **Adicionar um usuário a um grupo secundário com `usermod`:** - sudo usermod -aG sudo usuario - Adiciona o usuário `usuario` ao grupo `sudo`, permitindo que ele execute comandos como superusuário. * **Alterar o nome de login de um usuário com `usermod`:** - sudo usermod -l novo_nome usuario - Altera o nome de login do usuário `usuario` para `novo_nome`. * **Criar um novo grupo com um GID específico com `groupadd`:** - sudo groupadd -g 1002 novo_grupo - Cria o grupo `novo_grupo` com o GID `1002`. * **Bloquear temporariamente uma conta de usuário com `usermod`:** - sudo usermod -L usuario - Bloqueia a conta do usuário `usuario`, impedindo o login. * **Desbloquear uma conta de usuário com `usermod`:** - sudo usermod -U usuario - Desbloqueia a conta do usuário `usuario`, permitindo novamente o login. * **Renomear um grupo com `groupmod`:** - sudo groupmod -n novo_nome_grupo antigo_grupo - Renomeia o grupo `antigo_grupo` para `novo_nome_grupo`. * **Definir o intervalo de dias entre trocas de senha com `chage`:** - sudo chage -M 90 usuario - Define que o usuário `usuario` deve trocar a senha a cada 90 dias. * **Remover um grupo com `groupdel`:** - sudo groupdel grupo - Remove o grupo `grupo` do sistema. * **Remover um usuário e seu diretório home com `userdel`:** - sudo userdel -r usuario - Remove o usuário `usuario` e apaga o diretório home associado. ==== Nível Avançado ==== * **Criar um novo usuário com senha expirada para forçar o reset no primeiro login com `useradd`:** - sudo useradd -m -e 2025-01-01 -p $(openssl passwd -1 senha123) novo_usuario - Cria o usuário `novo_usuario` com a senha `senha123` e configura a expiração para `1º de janeiro de 2025`. * **Mudar o diretório home de um usuário e mover o conteúdo com `usermod`:** - sudo usermod -m -d /novo_diretorio_home usuario - Altera o diretório home do usuário `usuario` e move o conteúdo para o novo diretório. * **Alterar o GID de um grupo com `groupmod`:** - sudo groupmod -g 2000 grupo - Modifica o GID do grupo `grupo` para `2000`. * **Verificar a expiração da senha de um usuário com `chage`:** - sudo chage -l usuario - Lista as informações de expiração da senha do usuário `usuario`. * **Forçar um usuário a trocar a senha no próximo login com `passwd`:** - sudo passwd -e usuario - Força o usuário `usuario` a trocar a senha no próximo login. * **Adicionar um novo usuário com UID e GID específicos com `useradd`:** - sudo useradd -m -u 1001 -g 1001 novo_usuario - Cria o usuário `novo_usuario` com UID e GID definidos como `1001`. ==== Nível Especializado ==== * **Adicionar um usuário sem diretório home e sem shell de login com `useradd`:** - sudo useradd -M -s /usr/sbin/nologin usuario_no_shell - Cria o usuário `usuario_no_shell` sem diretório home e com o shell desativado. * **Forçar a troca de senha no próximo login com `usermod`:** - sudo usermod -e 2025-01-01 -f 0 usuario - Configura a conta para expirar em `1º de janeiro de 2025` e força o usuário a trocar a senha. * **Remover a senha de um usuário para permitir login sem senha com `usermod`:** - sudo usermod -p '*' usuario - Remove a senha do usuário, permitindo login sem senha. * **Criar um usuário com senha criptografada diretamente no comando com `useradd`:** - sudo useradd -m -p $(openssl passwd -1 "senha123") usuario - Cria o usuário `usuario` com a senha `senha123` criptografada. * **Mover um usuário para um novo grupo primário e vários grupos secundários com `usermod`:** - sudo usermod -g novo_grupo_primario -G grupo1,grupo2,grupo3 usuario - Move o usuário `usuario` para o grupo primário `novo_grupo_primario` e para os grupos `grupo1`, `grupo2`, e `grupo3`. * **Executar um comando como root sem alterar de usuário com `sudo`:** - sudo comando - Executa qualquer comando com privilégios de superusuário sem trocar para o usuário root. * **Trocar temporariamente para outro usuário com `su`:** - su - usuario - Troca para o usuário `usuario` e inicia uma nova sessão de shell. ===== Exemplos de uso do comando sudo juntamente com o comando su ===== ==== Nível Básico ==== * **Trocar temporariamente para o usuário root com `sudo` e `su`:** - sudo su - - Faz login como root diretamente, sem precisar saber a senha do root, usando os privilégios do `sudo`. * **Trocar para um usuário específico com `sudo` e `su`:** - sudo su - usuario - Faz login como o usuário `usuario` diretamente, utilizando os privilégios administrativos do `sudo`. ==== Nível Intermediário ==== * **Executar um comando como outro usuário sem sair do shell atual:** - sudo su - usuario -c 'comando_a_executar' - Executa o comando `comando_a_executar` como o usuário `usuario`, sem precisar trocar completamente para a conta desse usuário. * **Trocar para o root e manter as variáveis de ambiente com `sudo` e `su`:** - sudo su - Inicia um shell como root, mas mantendo as variáveis de ambiente do usuário original. ==== Nível Avançado ==== * **Executar comandos como root sem acessar o shell root diretamente:** - sudo su -c 'comando_a_executar' - Executa `comando_a_executar` como root sem abrir uma sessão de shell completa como root. * **Usar `sudo` e `su` em um script para executar múltiplos comandos como root:** - sudo su -c 'comando1 && comando2 && comando3' - Executa uma sequência de comandos como root sem precisar abrir o shell root diretamente. Os comandos `comando1`, `comando2`, e `comando3` serão executados consecutivamente. ==== Nível Especializado ==== * **Abrir um shell como um usuário diferente e rodar um script como root em uma única linha:** - sudo su - usuario -c 'sudo ./meu_script.sh' - Troca para o usuário `usuario`, e dentro desse contexto, executa um script com `sudo` como root. * **Acessar o shell de outro usuário e preservar o ambiente original com `sudo` e `su`:** - sudo su -m usuario - Troca para o usuário `usuario` sem modificar as variáveis de ambiente do usuário original.