Usuários Linux

Usuários do sistema no VPS com home privado, sudo opcional, mudança de senha forçada e exclusão com confirmação.

  • Categoria: Servidores e infraestrutura
  • Estado: Disponível
  • Requisitos: Um VPS da empresa ligado; Para listar e ver: acesso ao VPS; Para criar, editar ou apagar: ser admin da empresa
  • Ferramentas MCP (Só leem): listar_usuarios_vps, ver_usuario_vps
  • Ferramentas MCP (Escrevem ou modificam): crear_usuario_vps, editar_usuario_vps
  • Ferramentas MCP (Destrutivas): eliminar_usuario_vps

Markdown

O que permite fazer?

  • Listar os usuários com que se pode entrar no VPS e quais têm sudo.
  • Criar um usuário com senha, home privado e, se pedido, sudo.
  • Obrigar a mudar a senha no primeiro acesso (ativado por padrão).
  • Mudar a senha ou tirar e dar sudo.
  • Apagar um usuário, com ou sem a sua pasta pessoal.

Quando convém usar?

  • Dar acesso por SSH ou por terminal a uma pessoa sem compartilhar o root.
  • Um usuário próprio para correr uma aplicação.
  • Retirar o acesso a alguém que saiu da equipe.

Como funciona na ArduMaker?

Criação

  1. Valida-se o nome: começa com minúscula ou _, segue com minúsculas, números, _ ou -, até 32 caracteres. A senha é obrigatória.
  2. Se o usuário não existe, é criado com useradd -m -s /bin/bash, define-se a senha e, com force_password_change, marca-se como expirada (chage -d 0). Um usuário que já existia não é tocado.
  3. Deixa-se o seu home /home/<usuario> com permissões 700 e os arquivos de arranque de /etc/skel que faltem.
  4. Com sudo=true é acrescentado ao grupo sudo.

Listagem

Só aparecem usuários “humanos”: UID 1000 ou mais, com shell de login e senha ativa, mais o root. Os usuários de sistema (www-data, postgres…) não são listados.

Exclusão

  • root nunca pode ser apagado.
  • Um agente tem de enviar confirmacion com o nome exato do usuário: a proteção obriga a ler o que se vai destruir.
  • Por padrão também se apaga a pasta pessoal (remove_home=true); com false conserva-se.
  • Os processos que correm como esse usuário continuam até terminarem: apagar a conta não os mata.
  • O nome do usuário apagado fica no registro de atividade do VPS.

O que muda realmente?

  • /etc/passwd, /etc/shadow e os grupos do sistema (sudo).
  • /home/<usuario> com permissões 700, propriedade do usuário.
  • A lista de usuários que a ArduMaker guarda do VPS é atualizada ao criar e ao listar.
  • Uma entrada no registro de atividade do VPS por cada operação.

Entrar com o usuário

Criar o usuário não abre o SSH. Para entrar de fora é preciso um redirecionamento para a porta 22, idealmente com vencimento (ver Firewall e portas):

ssh -p <host_port> usuario@<dnsip>

Com force_password_change=true, no primeiro acesso o sistema pede a senha atual e uma nova.

Esquema

  1. Pedido: usuário, senha, sudo
  2. Validação: nome válido, admin da empresa
  3. Agente do VPS: useradd → chpasswd → chage → usermod
  4. Resultado: usuário com home 700 e, opcional, sudo
Criar um usuário

Resultado esperado

  • listar_usuarios_vps devolve users e sudo_users (inclui sempre o root).
  • ver_usuario_vps devolve a linha do usuário em /etc/passwd.
  • crear_usuario_vps sobre um usuário que já existe devolve esse usuário com ya_existia: true em vez de falhar.
id usuario
sudo -l -U usuario

Erros e resolução

RespostaCausaO que fazer
400 Invalid usernameMaiúsculas, espaços ou caracteres não permitidosUsar o formato válido
404 User '<usuario>' not foundEsse usuário não existeListar primeiro
403 ao apagar rootroot está protegido—
428 sem confirmacionUm agente não enviou o nome exatoReenviar a mesma chamada com confirmacion igual ao usuário
403Criar, editar ou apagar requer admin da empresaPedir a um admin

Criar é seguro de repetir (devolve o existente com ya_existia), mas nesse caso a senha não é alterada. Um userdel ou deluser por ejecutar_comando_vps é sempre rejeitado, sem opção de confirmar: o caminho previsto é eliminar_usuario_vps.

Relação com MCP

Sim, nos perfis /mcp e /mcp/vps.

FerramentaTipoNotas
listar_usuarios_vps, ver_usuario_vpsLeitura—
crear_usuario_vpsEscritaAdmin; idempotente por nome
editar_usuario_vpsEscritaAdmin; password e/ou sudo
eliminar_usuario_vpsDestrutiva, irreversívelAdmin; confirmacion = nome exato

Referência em /mcp/docs e exemplos em /mcp/vps.

Funcionalidades relacionadas