Al di la dei permessi, che chiaramente devono essere perlomeno di lettura ed esecuzione per apache (se è proprietario o membro del gruppo), se vuoi rendere un file "invisibile" ai navigatori su internet lo devi semplicemente mettere "sotto" la root pubblica del tuo sito.
Faccio un esempio stupido:
se il www.tiziocaio.it punta sul tuo server ad un percorso simile:
/var/www/html/tiziocaio.it/public_html
qualsiasi file fuori dalla cartella public_html (e sottocartelle), indipendentemente dai suoi permessi, risulterà invisibile ai navigatori.. Per esempio basterebbe farlo risiedere asu un percorso del tipo:
/var/www/html/tiziocaio.it/public_html
Poi un consiglio: files di questo tipo forse converrebbe memorizzarli in database invece che su filesystem.
Gabriele