Ваша проблема в том, что вы не можете изменить пользователя, под которым работает сервер, когда пользователь входит в систему. Поэтому вы не можете использовать безопасность на уровне ОС для управления доступом к файлам, пока вы остаетесь в контексте серверный процесс.
Вы можете объединить всех пользователей и веб-сервер в группу и использовать umask 002
, чтобы все члены группы могли получить доступ ко всем файлам. В вашем коде LUA вы должны проверить, что текущий пользователь является владельцем файла, и отказаться от операции в противном случае.
Если необходимо создать новый файл, вам нужна программа SUID, которая может изменить владельца файла с «веб-сервера» на «пользователь».
В качестве альтернативы вы можете создать программу SUID, которая может изменить свой UID и которая принимает команды от веб-сервера. Когда пользователь входит в систему, вы запускаете программу с UID пользователя, а затем сообщаете ему, к каким файлам получить доступ.