- Crie a conta de usuário, opcionalmente com o mesmo UID e GID de antes e com o diretório inicial no mesmo local (por exemplo,
/home/sid) - Definir a senha
- Descompacte o arquivo no diretório inicial do usuário
- Altere a propriedade se você não usou o mesmo UID e GID de antes
- Adicione o usuário a outros grupos necessários
Se você quiser simplificar o processo, precisará fazer algumas coisas. A seguir, assumirei que o usuário é chamado mark .
- Registre a associação do grupo do usuário:
cd ~mark && id mark > mark.identity - Fazer backup do diretório inicial do pai - por exemplo, se for
/home/mark, você precisarácd /home && tar jcpf mark.tar.bz2 mark - No novo host, restaure-o para / home (
cd /home && tar xjpf mark.tar.bz2) - Identifique o grupo e o nome de usuário e os membros do grupo e, em seguida, restaure-os. Isso deve ser bastante programável, algo vagamente parecido com:
#!/bin/bash
USER=""
if [ ! -e "${USER}".identity ]; then
echo "No identity file"
exit
fi
GD='awk '{ print "${USER}".identity }' | sed -e "s/.*(//g" -e "s/).*//g"'
GLIST='awk '{ print $NF "{USER}".identity }' | sed -e "s/[a-z]*=//g" -e "s/[0-9]*(//g" -e "s/)//g"'
for GROUP in ${GD} ${GLIST}; do
getent group ${GROUP} >/dev/null
STATUS=${?}
if [ ${STATUS} -ne 0 ]; then
groupadd ${GROUP}
fi
done
useradd -g "${GD}" -G "${GLIST}" "${USER}"
Note que eu acabei de escrever isso aqui, eu não testei isso.
Sim, pressupõe-se que todos os grupos existam. Não seria difícil estender o script para verificar se cada grupo existia e criá-lo se não existisse. As mudanças acima devem cuidar disso.
Note também que isso não vai cuidar dos privilégios obtidos através do sudo. Também não ajudará se você tiver um e-mail local ou qualquer outra coisa. Tudo o que vai fazer é configurar o usuário com os mesmos grupos de antes. Além disso, se um diretório já existir, ele irá sobrescrevê-lo, então é necessária alguma atenção.