Me and a bunch of friends have all embarked on a rather large project, and I'm trying to ease the sharing of files. Since I have a server sitting around and not getting much use, I figured I could make an FTP server where people can just drop/grab the files we need.
I have never done anything like this, and have never even exposed anything externally, so I'm a bit hesitant. I also just don't know which protocols or packages to use, and have even less of an idea how to configure them.
Basically here is what I want to achieve:
- SECURE access to my sever
- Separate user accounts for each person (mostly for logging purposes)
- Each user is confined to a single, specified directory, and can upload/download files from here
I've seen people recommend using FTPS via the vsftpd package, and use SSL. I've also see people just suggest installing the OpenSSH-server package and using SFTP.
No real idea what I'm doing here, so suggestions would be fantastic!
I would use SSH and SFTP. But, may I make another suggestion:
If there is any possibility of more than one person wanting to work on the same file, then you should consider a Revision Control System rather than simple FTP. This way you can avoid the possibility of conflicts between multiple updates to the same file.
A widely used system, and my favourite, is Subversion. There a free book available that will explain how to install, configure and use Subversion. It's an O'Reilly title, so the provenance is good.
Well, after a few frustrating moments (which were most likely due to my own errors ), I got a Subversion server set up, using SSL. All just local so far.
One thing I was wondering. What do you guys generally recommend for a web interface (if you have a preference)? The rest of the people in this project aren't exactly Linux-savvy, so I don't want to force them to learn Bash/SSH and whatnot. Would just like a nice easy interface they can use.
I don't know of any web interfaces to subversion, but there's a GUI called subcommander. Also it integrates with many IDEs. Anjuta and Eclipse are the ones I hav tried; both have modules to integrate sibversion nicely.
I enter -> https://192.168.0.15/svn into my web browser. It prompts me for my username/password. I enter them, they're accepted, and then it 403's. I have chown'd my svn directory for the www-data user. Any ideas?
I've never actually tried using subversion via a web interface. I think you need extra tools to do so. Have a look here: http://geekswithblogs.net/flanakin/articles/CompareSubv... . I just use it from within Eclipse or XCode, via the command line, or with something called toirtoisesvn on Windows, which integrates with Explorer.
Alright, thank you. The problem is the tools we're using are available only on Windows. If they worked on Linux, I'd just get everyone to use that and use the CLI since that's so much easier (IMO). I'll have to look into toirtoisesvn and similar alternatives.
Alright, well I tried out WebSVN and it's working just fine. Got SSL working with it as well, and have account/password authentication. Sweet!
I think I might try to convince them to just use the CLI though, as it's just so easy. I'd write them a batch script, but I'm not sure how to handle the username/password prompts with that. We'll see though.
I think you'll find that revision control is a great boon for a system with separate users/developers. It's even quite a good thing to use on a system with a single-user. For starters, a repositry of /etc and any changes to it could be a good idea.
I use it mainly because I like to use different machines to develop the same system, but it's also handy to be able to roll back to previous versions and to be able to compare files to see what changes you have made.