Eu tenho que dar crédito total a Kyle Brandt acima. Então, se você gostou desta resposta abaixo, clique no triângulo Up em sua postagem para levantar seu status, por favor.
No entanto, eu melhorei sua rotina e senti o dever de publicá-la aqui e marcá-la como a resposta final.
Tudo o que eu adicionei à rotina de Kyle foi garantir que estamos tocando apenas o diretório home, assim a linha com os asteriscos nele. Então, eu garanto que esse diretório inicial ainda existe. Depois disso, eu faço a declaração chown. E assim como Kyle disse - remova a palavra-chave "echo" e ela realmente conduzirá a tarefa. Então, eu adicionei "-R" no chown para fazê-lo funcionar recursivamente, no caso de o problema ser mais profundo em um diretório pessoal.
#!/bin/bash
while IFS=':' read -r login pass uid gid uname homedir comment; do
if [[ "$homedir" = **/home/** ]]; then
if [ -d "$homedir" ]; then
echo chown -R $uid:$gid "$homedir";
fi
fi
done < /etc/passwd