- 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.