Как организовать собственное хранилище файлов для пользователей сайте, а-ля облако?
Вопрос то ваш в чём конкретно?
Можно использовать - PHP, JavaScript, MySQL.
Готовых библиотек нет.
Условные таблицы и их поля:
users: id,username
files: id, user_owner_id, filename, path
file_accesses: file_id, user_id, share_url, permission_level
Владелец у файла должен быть всегда, а доп.доступы могут быть, могут не быть (таблица file_accesses). Когда хотите расшарить - генерите ссылку share_url для file_id, задаете права доступа (permission_level), указываете, кому в системе расшарить - вот строка в базе для идентификации прав к файлам у не-владельца. Уровни прав доступа пишете уже на уровне бекенда