Usar vim para adicionar usuários / grupos (editando /etc/passwd , /etc/group , /etc/shadow , /etc/gshadow , ...) é A maneira realmente difícil.
Eu chamo de "Really Hard" por dois motivos.
Primeiro, já temos ferramentas para fazer isso (e eles executam TODOS os passos e são atualizados conforme necessário). Leia man useradd e man adduser . Pode-se usar essas ferramentas para criar um ID do usuário com uma senha expirada e vazia. Isso leva a nenhuma senha para o login inicial e a seleção obrigatória de senha do usuário.
Segundo, usar vim em scripts é um grande exagero. Leia man ed para um editor simples que provavelmente atenderá às suas necessidades.