Etapas para restaurar o diretório inicial? (IDs de usuário, etc.)

5

Digamos que eu tenha um home.tgz e queira colocar isso em uma nova caixa do Ubuntu.

O que preciso fazer antes de descompactar o arquivo? Crie usuários? E quanto aos IDs de usuário? Grupos? E quanto à criptografia?

    
por Martin 29.10.2010 / 10:17

2 respostas

4

  1. 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 )
  2. Definir a senha
  3. Descompacte o arquivo no diretório inicial do usuário
  4. Altere a propriedade se você não usou o mesmo UID e GID de antes
  5. 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 .

  1. Registre a associação do grupo do usuário: cd ~mark && id mark > mark.identity
  2. Fazer backup do diretório inicial do pai - por exemplo, se for /home/mark , você precisará cd /home && tar jcpf mark.tar.bz2 mark
  3. No novo host, restaure-o para / home ( cd /home && tar xjpf mark.tar.bz2 )
  4. 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.

    
por Cry Havok 29.10.2010 / 12:23
0

No meu teste, adicionei bob (1001) e alice (1002). Eu deletei bob e adicionei joe (1001). Desculpa eu estava errado. Você só precisará reatribuir o proprietário e o grupo da pasta pessoal de cada usuário a cada usuário.

Isto pode parecer tedioso, mas é apenas uma explicação detalhada dos 3 passos.

Você precisa de privilégios de superusuário para realizar essas tarefas de manutenção, portanto prefixamos cada comando com sudo , o que nos dá esses privilégios.

Na nossa nova instalação do Ubuntu:

  • # 1 crie a conta do usuário: sudo adduser alice
  • # 2 descompacte os arquivos de backup em seu novo diretório inicial
  • # 3 alice o proprietário dos arquivos: sudo chown -R alice\:alice /home/alice

Para explicar os comandos:

  • # 1 adduser cria o diretório / home / alice para nós (entre outras coisas)
  • # 3 a opção -R significa aplicar propriedade recursivamente, alice \: alice é como especificamos o novo owner\:group para os arquivos e dizemos ao chown para fazer essa tarefa em /home/alice .

Agora, todos os arquivos em / home / alice pertencerão a ela e ela não deverá ter problemas ao acessar seus arquivos. Espero que faça mais sentido.

Crie a nova conta de usuário com o mesmo nome e, em seguida, terá o mesmo UID que a conta de usuário antiga. Lembro-me de ler sobre isso em uma lista de discussão em algum lugar, mas não consigo encontrar a fonte onde a li.

    
por invert 29.10.2010 / 13:23