Primeiro, com relação à permissão de leitura de Outros no / hello, você provavelmente não quer nenhuma permissão de leitura ou deseja a permissão Ler e Executar em / hello. Executar permissão em um diretório significa que o usuário pode fazer um ls no diretório. Ler sem permissão Exec significa que o outro usuário seria capaz de ler qualquer arquivo nesse diretório, mas somente se soubesse o nome do arquivo. É raro que isso seja desejado.
Em segundo lugar, se os arquivos são criados por John são sempre legíveis por outros, então, você não pode impedir David de lê-los.Você pode definir as permissões padrão que um usuário cria arquivos usando o comando umask. Coloque essa linha no .bashrc de John e David (ou equivalente):
umask 7
Agora, quando John criar arquivos em / hello, eles serão proprietários e grupos de john.
-rw-rw---- 1 john john 0 Jun 28 22:05 foo
David não poderá ler este arquivo.
Outra possibilidade é, em vez de usar vendas de nomes de grupos, simplesmente adicionar john ao grupo de David. John então poderá ler / escrever os arquivos de David, mas não o contrário.
Algumas outras coisas interessantes que você pode considerar. Você pode definir o sinalizador de gid no diretório / hello e, em seguida, quando os arquivos forem criados por John ou David, eles estarão no grupo de vendas. Daí legível e gravável por ambos. Não é o que você pediu, mas é assim que você faz isso.