Recuperar banco de dados do usuário a partir do diretório home do UID

1

Eu fiz uma pergunta anteriormente sobre a recuperação de um RAID 1 partição onde todas as UUIDs das partições membros foram zeradas . Não tendo recebido resposta nesse tópico, agora sou forçado a reinstalar o CentOS na partição do SO e reconstruir o sistema.

Uma das grandes tarefas da reconstrução será tentar recuperar o banco de dados do usuário, para o qual não há backup recente. Meu objetivo é simplesmente recriar o banco de dados do usuário usando um script em uma lista de UIDs e nomes de usuário para criar a conta de todos com a mesma senha que eles podem alterar no login.

/ home estava em um array de raids diferente e ainda existente, então nessa partição eu tenho uma lista exaustiva de usuários, e lendo o UID do diretório de cada usuário, eu também tenho o UID antigo de cada usuário. O que estou sofrendo é um par de scripts. O primeiro iterará / home e criará um arquivo com pares combinados de UID e nome de usuário, e o segundo usará esse arquivo de saída para criar todas essas contas na nova instalação, para que os UIDs dos diretórios iniciais sejam convertidos em um usuário atual. É um servidor de arquivos samba, então durante o segundo script eu também criarei o nome de usuário do samba.

Alguém sabe de uma ferramenta ou script já escrito para fazer essa tarefa, para que eu possa evitar a recriação da roda?

Obrigado!

    
por JasonPAtkins 04.11.2016 / 11:03

1 resposta

1

Você pode criar um arquivo csv de seus diretórios iniciais contendo "user: home: uid: gid" assim:

find /home -mindepth 1 -maxdepth 1 -type d -not -name "lost+found*" \
  -printf "%f:%p:%U:%G\n" >/tmp/user.txt

Em seguida, recrie os usuários com isso

cat /tmp/user.txt | while IFS=: read -r user home uid gid; do \
  echo useradd -d "$home" -u "$uid" -g "$gid" "$user"
done

Remova o echo se a saída parece correta. Você deve ser capaz de adotar este comando useradd para suas necessidades e adicionar o comando samba correto ao loop também.

    
por 04.11.2016 / 11:35