Use samba which will create a Windows share on your Linux system. Then:
1 - make the users log in with a user name and password to mount the samba volume.
2 - Samba uses Linux permissions. The user will log on with a Windows user and password.
3 - This can be more difficult. Linux does not support file types by extension. The easiest way to achieve this would be to restrict the user to a particular directory.
Here (
link) is a document that I found that provides a good explanation of samba permissions.