PDA

View Full Version : Sharing users across servers


Yil
05-17-2007, 02:38 AM
I see several requests for some sort of ability to share users across several FTP servers (sites), so I'm trying to understand the requirements... Speak now or forever hold your peace.

1) First off, I'm thinking of a separate standalone application to sync the sites (perhaps even a new version of ioGUI or something with a visual frontend). I don't think adding this into ioFTPD itself buys anything.

2) I'm personally in favor of using ioFTPD userfiles to hold all user info (with a few extra fields perhaps) on all the FTP servers instead of an SQL style database. This would mean ioFTPD wouldn't have to load a dll to handle the shared users. It also means that if the sync server(s) went down everybody could still use their accounts.

If an SQL database was required (speak up if so and why) then the sync tool I envision could handle the database instead of the individual sites.

3) Sites must support both local and shared users, but is there a need to share users across disjoint sets of servers? I.e. share some users with sites A,B and other users with sites C,D or is it just one set of shared users across all of them? If disjoint, would a flag indicating they couldn't login to some sites be an acceptable alternative but all the users would exist on all the sites? Is there any problem with using just 1 sync server (possibly replicated) or are the disjoint sites so independent they couldn't even share a sync server?

4) Are all sites created equal or should some be masters and other slaves? By this I mean that only master sites can create/modify shared users.

5) What about groups? Are all shared users in the same group or should they be allowed to be in local groups as well?

6) For site that use credits how should that work? Should credits on any site be usable on any other site automatically? Or should users have to manually enter a command to transfer them? Obviously this could be an option.

7) If the sites are using sections then perhaps some mapping between sites using the section names would be required so that MOVIE credits could only be used on MOVIE sections.

8) Should there be some command to see your credits on all or some sections across all the sites if they aren't automatically shared and thus the same on all sites until used?

9) What about up/down stats? Shared or local or both?

peep
05-17-2007, 04:14 AM
I haven't really read through your whole post yet, but I just thought that I'd let you know that Mouton and Harm once was starting to work on such a module. You can read the design they thought of over here (http://ioftpd-scripts.cvs.sourceforge.net/ioftpd-scripts/ioDistDB/design.txt?revision=1.2&view=markup) (sf.net)

Flow
05-17-2007, 04:15 AM
Hi Yil!, is thare no active ioFTPD scripter left? (since this feature look like a plugin to me). Is ioFTPD daemon stable now?. I am in noplace to argue, but could you pause "features" adding to ioFTPD and release a -stable version if thare are no other bugg to hunt.

Thanks again for your effort.

Yil
05-17-2007, 02:56 PM
peep: Thanks for the link. Always good to look at other designs.

Flow: I'm actually hoping that shared users can be done with scripts and possible one or two small changes to ioFTPD itself. Using such a design it would be possible (in theory) to actually span glftpd and ioFTPD servers since the external sync tool I envision wouldn't be built into the servers themselves. I'm all for another scripter stepping up to the plate though :)

I've stopped day to day development on ioFTPD and started playing with learning a little C# since I think I want to build a new ioGUI in that language... That GUI could then serve as the sync tool as well since it would be able to connect to multiple servers and knows the users on each site so that's half the work right there!

We'll see how things go, and how much time I've got, but I've learned that getting lots of user input on this forum can take a while since some people check in rarely. I figured I better start the shared user discussion early in case someone has a feature or issue that would break the design I'm thinking of...

void4ever
06-12-2007, 02:19 PM
I used the old database share program someone made years ago for IO. I can't even remember what it was called anymore. It works fairly well despite having no real feature set. Just copying user files between sites. It worked off a sql database.

I think getting away from the database is key if possible. Storing everything in userfiles like suggested would be awesome. Also making sure there was a local copy of everything on each site is also a must, just in case the master is offline for any reason. Which in that case adding a flag of some sort to denote shared vs local in the userfile. The same should be true for groups.

Personally i think any userfile flaged for sharing should also share stats between sites, but maybe the way to do it would be as follows.
Site 1 = 500
Site 2 = 500
Total = 1000
That way it's still possible to track per site and get an over all view. I don't know how hard that would be to code though.

I also think credits should be shared for any user file flagged for sharing. It just makes sense, i mean people have made those credit transfer scripts in the past. This would end all that.

As far as a local user being able to join a shared group i don't see why not. At the very least give the admin the choice.

As far as should there be a master site, personally i could go either way on that. It would be cool if your iogui program could act as the master itself, so no site was a slave or master. Of course this would require the admin to keep the program running at all times, unless uploaded to the box where a site is running (but still a seaprate process).

One thing that would rock is the ability to sync between glFTPD and ioFTPD. I don't know if thats possible but just throwing it out there.

Thats all i can think of now, i've been out of the admin scene for a few years and just recently returned. :P so i'm behind.

Void4ever

ko0ky
07-10-2007, 10:16 AM
I think the answers are obvious. We want to be able to share EVERYTHING across the board between all sites. Users/Groups/Stats/credits. i personally don't use multiple sections so I cannot comment on that.

There use to be a module called ioshareDB, it worked OK, but was buggy and never updated.

I hope you continue to ponder the idea and maybe we will see something good in the future.

Thanks!

ArtX
07-10-2007, 06:05 PM
Yil if you have a look at MSS (multi site sync and yes i know its a glftpd script) i think this is what would suit best, more likely a cut down version of or something

http://www.grandis.nu/glftpd/ look for MSS Updated to 2.26 - about half way down that first page, as i say i know its a nix script but it has read me and docs that might give you some idears

Yil
07-10-2007, 08:59 PM
Heya Carpo. Yea, I already looked at that. Unfortunately it requires a shared filesystem. You setup a small network shared NFS dir and then copy the local userfiles to/from that... It's also written as sh scripts and I'm betting most people don't run cygwin on windows (I do as I'm originally a unix guy). Pretty much no chance of using anything except ideas...

ArtX
07-11-2007, 03:24 AM
Yes thats what i meant maybe it might have given you some idears, if anyone has a copy of iosharedb you could have taken a look at that