Hi,
If the shared files module doesn't meet your needs you could make a clone of it and add support for your needed features or potentially hire me to implement the needed support as a sponsored improvement.
The way it works now is all by page permissions. You put the module on the page and those with permission to view the page can download files and those with permission to edit the page can upload or edit files in addition to download. You can also enable versioning and it will keep a history of every version of the file.
So if its possible to partition your users into roles and create a page with files for each role that may meet your needs.
If you want to keep all the files in one module instance and filter based on roles or users that can be done but has some potential challenges in terms of performance because you would have to check role permission on every file during databinding to prevent users from seeing files they should not. If there are a lot of files this could get really ugly. Doing it on a user basis rather than on roles would be even worse though it could be done. The current model is much simpler and simple often performs better than complex.
Best,
Joe