para percorrer uma pasta, é necessário ter a permissão de execução. Execute dará acesso a "executar" (ou seja, atravessar) a pasta sem ter qualquer acesso para ler os arquivos nela.
Então, imagine que você tenha a seguinte árvore de diretórios em sua pasta pessoal:
jvehent@laptop:~$ tree -d Downloads
├── linux-2.6.38
│ ├── arch
│ │ ├── alpha
│ │ │ ├── boot
│ │ │ │ └── tools
│ │ │ ├── include
│ │ │ │ └── asm
Você pode conceder a qualquer pessoa acesso à pasta "asm" sem permitir acesso a qualquer outra coisa definindo a permissão de execução para todos na hierarquia completa e, em seguida, a permissão de gravação na pasta asm:
chmod o+x /home/jvehent
chmod o+x /home/jvehent/Downloads
chmod o+x /home/jvehent/linux-2.6.38/
chmod o+x /home/jvehent/linux-2.6.38/arch
chmod o+x /home/jvehent/linux-2.6.38/arch/alpha
chmod o+x /home/jvehent/linux-2.6.38/arch/alpha/include
chmod -R o+wx /home/jvehent/linux-2.6.38/arch/alpha/include/asm
Seguindo a mesma lógica, você pode colocar "testuser" e "tempuser" em um grupo separado "testgroup" e dar acesso apenas ao "tempgroup"
chgrp -R tempgroup /home/jvehent/linux-2.6.38/arch/alpha/include/asm
chmod -R g+wx /home/jvehent/linux-2.6.38/arch/alpha/include/asm