Você pode fazer isso usando permissões diferentes. Presumivelmente, se você remover as permissões de leitura para /home para os outros e para o grupo. Desta forma, apenas o superusuário terá acesso a leitura.
Eu testei isso criando um novo usuário para o qual eu atribuí uma pasta diferente da pasta padrão. Como eu estava testando, eu fiz em uma pasta diferente da pasta /home do meu sistema no caso de eu estragar tudo. Aqui está o passo-a-passo do que fiz e parece ter funcionado:
- criei uma pasta
/private_home - Em
/private_home, criei outra pasta chamadauser1. - Criado um usuário padrão chamado
user1. - Pasta atribuída
/private_home/user1como a pasta base do usuário que usa:sudo usermod -d /private_home/user1 user1. Isso move a pasta inicial deuser1de/home/user1para/private_home/user1. - Em seguida, alteramos os privilégios de acesso para
/private_homeda seguinte forma:sudo chmod 711 /private_home.
Agora, quando fizer login como user1 usando su user1 , fiz login na pasta do usuário /private_home/user1 , mas quando tento cd .. , consigo acessar a pasta (os prompts do shell mostram isso), mas tenho sem permissões para ler o conteúdo da pasta. Ou seja, ao tentar ls , diz "Permissão negada".
Presumivelmente, você pode fazer a mesma coisa para todos os usuários para a pasta /private_home .
Tendo dito isso, eu não faria isso com / , pois você correrá o risco de tornar seu sistema instável .
Observação: usei alguns dos conceitos em a resposta neste post .