Secondo me il modo più corretto per fare quello che chiedi sarebbe il seguente:

1. Cartella files non visibile lato web, meglio se fuori dalla document_root, ma se non puoi almeno protetta con htaccess.
2. Salvataggio su db del nome del file con riferimento all'id dell'utente proprietario. (volendo potresti anche mettere un id di collegamento ad un gruppo al quale poi farebbero riferimento gli utenti)
3. Pagina php che verifica l'autorizzazione a leggere il file da parte dell'utente che lo richiede e se autorizzato generi i giusti header per dare poi in output il file letto tramite readfile

Ciao