Note que isto é em resposta à pergunta como reformulada no comentário.
Eu agruparia os usuários em "meta-grupos", que poderiam ser grupos comerciais (gold, valued, free, yadda, yadda) ou apenas um hash do nome da empresa. Então eu teria isso:
/home/users/${metaGroup}/user
como seu $ HOME com permissão apenas para eles lerem e um acesso ssh apenas por chave. O sistema operacional garantirá que todos os arquivos sem permissões de leitura de grupo / mundo sejam legíveis por grupos ou por todos.
/home/users/${metaGroup}/user/public_html
seria a sua pasta pública, que tem que ser legível por todo o mundo, mas não é do mundo.
O ${metaGroup}
está lá para facilitar a localização de um cliente e não gastar tempo procurando comandos ls complexos para obter o que você deseja. Observe que o número de IDs de usuários também é limitado - consulte a documentação.
No entanto, a hospedagem nesse modelo não é escalonável e permite que os clientes acessem o shell em seu servidor de produção de uma maneira segura de se meter em um monte de problemas.