makew0rld / gemlikes

A liking and comment system for the Gemini protocol.
GNU Affero General Public License v3.0
51 stars 5 forks source link

Support multi user environments better #4

Open makew0rld opened 4 years ago

makew0rld commented 4 years ago

Mainly, allow for multiple files with the same name but different paths.

contrapunctus-1 commented 3 years ago

Another multi (UNIX) user environment issue - if a server is being run as a separate user, it cannot write to directories of other users (it does not have permission to create the data directory or files inside it). Consequently, users are unable to use gemlikes on such systems. Is there anything that can be done about this? The server I tried to set it up on was tilde.team, which runs gemserv.

makew0rld commented 3 years ago

@contrapunctus-1 The first thing to note that a single instance of gemlikes is not ready for multi-user setups and should NOT be used there. In fact, it's currently possible for other users to disable comments on a user's page, just by creating a page with the same name. So if you're trying to use it in a multi-user environment please stop and let me know.

However, it should be okay to use multiple instances of the gemlikes binaries, each with their own config file and data dirs, for each user. If your gemlikes binaries are serving just you, then that's okay.

And yes, the server would need to be able to read the data directory, and any files you want people to be able to comment on. One way to do this would be to make the data directory world-readable, although that's clearly not ideal. Maybe talk to your admin and see if there's some group you can add the directory and files too, so that the server and you can read/write it.

Hope this helps!

MineRobber9000 commented 3 years ago

Hey, tilde.team admin here~

Our gemini server has no group (literally; groups gemini returns gemini: nogroup). As such, this doesn't apply. However, as I advised contrapunctus in IRC when asked, there is a way on tilde.team to set this up.

Namely, all tilde.team users are in the team group. So, by setting the data directory (and the files within it) to user:team (which they should be by default if you made them) and making the permissions something like drwxr-xrwx (646 in octal), you can prevent users in the team group from writing to it while leaving the gemini server (which has no such grouping) available to write.

contrapunctus-1 commented 3 years ago

Thanks, that worked. I'm grateful for the interaction with readers it provides. The only issue is that the author of the gemlog cannot modify the likes and comments (e.g. to redact spam, or a test comment I made 😓) EDIT because the author does not have permission to access the files created by the server. e.g. the comments file is -rw-r--r-- gemini nogroup

I hope these multi-user environment issues can be ironed out in future iterations of gemlikes.

makew0rld commented 3 years ago

The only issue is that the author of the gemlog cannot modify the likes and comments

You should be able to, by modifying the data files. But you have to be careful to do it correctly. To be honest this entire system is somewhat poorly made and patched-together. I'm glad it's working for you, but I wouldn't recommend people use it. If I ever make a new comment system I'll let you know.