Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I've recently taken it upon myself to make some use of an old computer I have picking up dust in my home. My father and I have decided that we would like to use it as a central file server that anyone in our home network can access. My questions start at:
what linux server distro should I be looking at?
what programs should I download so that the server can interact with windows and OS X clients?
any other programs that I should consider installing for security purposes?
If purely for a server, I'd recommend Centos (free version of RHEL).
For filesharing to MS probably Samba; OS/X probably use NFS.
Both tools are pkg for Centos, so no problem there, although they can be a bit tricky if you're new to them.
(Definitely stick to using official pkgs for your system if at all possible; it'll save you a ton of grief)
Security is a big qn; that's why we have an entire forum just for that.
Usual basics apply; give everyone separate logins/passwds and ensure the security settings for the tools above are setup correctly if file permissions, ownerships etc.
See also firewall (aka iptables - built-in firewall).
You're going to be best off starting a new thread for each qn to keep things clear.
You didn't state your experience level with Linux, so I will assume since this is your first post on these forums that you are a newbie. And I will also assume that you are not comfortable with the Linux command line. If you are more experienced than I am assuing, tell everyone where you're at so you can get the most appropriate help.
(1) You don't need a "server" distro. You can do what you want with just about any distro. The so-called server distros are really nothing more than stripped down desktop distros, in a manner of speaking. If you are a newbie, you may need the hand-holding of a desktop distro. Staring at a black screen with a prompt that looks like "$ " or "# " can be quite daunting if you don't already have a good handle on Linux. If you are a newbie, I would recommend plain old desktop Ubuntu. It will be overkill for what you actually need, but it will hold your hand and there are five bazillion other folks out there who can step you through Ubuntu if you have questions or problems.
(2) Don't consider RAID. Typical home users really don't need it. RAID is NOT a backup solution. It is an uptime solution, and very few home situations need that.
(3) Determine what it is exactly that you want to do. Only share files? And what type of files - small user data files or a bunch of big movie files? Will you be wanting to do only simple file sharing, or do you want to stream video's from this box, set up a personal cloud server, a web server, etc.?
(4) If you are thinking "large amounts of data", e.g., a ton of movie files, you will need a lot of disk space and it will behoove you to learn "LVM" at some point, so you can just keep adding disks as you run out of space and treat the combination of them all as one big virtual disk. Since you stated you are re-purposing an old PC for this server, keep in mind expandability - you will need slots for all the disks, adequate cooling, adequate power supply, etc. But I'm getting ahead of things here.
(5) Linux is pretty secure by default, nothing like Windows. So you will not have to jump through hoops to make a secure system. The easiest way for someone to get into your Linux system is if you open up SSH to the world at large, allow password authentication, and choose weak passwords. So right from the get-go, pick good strong passwords for all the accounts on your server. None of this crap like a username of "jack" with a password of "jack123". If you allow SSH into your server, it is far better to disallow password authentication and instead require pubkeys. Again, I'm getting ahead of things here.
(6) You need to set up some kind of backups for your server. Now that you're putting all your eggs into one basket, you need to make sure that this new centralized basket is as bullet-proof as possible. Backups need to be made to a totally different disk, preferably residing on a totally different server, preferably at a totally different (off site) location. These backups should be automated. Manual backups often times fall by the wayside and are not done regularly enough.
(7) My personal preference for simple file servers (just running Samba and other basic stuff) is to run the OS totally from memory. It loads from disk to memory at boot and then runs totally from memory. So if you corrupt something, or you get hacked - just reboot and you're back up and running. Obviously you have to automate all your tasks so they run at startup - setting the root password, strting an SSH daemon, creating Samba config files, starting Samba, etc. It is a little harder to set up a system this way, because you have to create, test, and tweak startup scripts to get everything as you want it ... but the end result is nice for a stand-alone server that rarely has users on it. I may be getting ahead of things here again, for a newbie just getting a normally installed OS configured can be tough enough, without having to worry about scripting it all to run automatically at boot time.
Do you have any experience with Linux already? You didn't say. If you do, that's great, but if not, don't worry. You'll acquire it.
Most people here will not agree with my suggestion to someone who lacks Linux experience, but I suggest Slackware for your server system. The reason many people will not agree with me is because Slackware is not considered to be a beginner level distro. But people make it out to be more difficult to install and configure than it really is. The installation process isn't quite as wizard-like as some other distros, but it's simple and clean, and there is excellent documentation to guide you.
The reason I suggest Slackware is that it gives you both a very capable desktop system and a fairly complete server system all-in-one, practically ready to go after installation. It comes with nearly every server package you will likely want to use already installed for you, with only minimal additional configuration needed before you can fire them up.
Slackware has a great online user's guide that covers most everything you'll need to set up and use the system and to get your servers up and running. There are also plentiful examples of Slackware-specific server configurations available on the net. If you follow the guides, are willing to read a man page or two, and can edit a few text files, then Slackware is a great choice. Also, the official Slackware support forum is right here on LQ, so you can ask questions in the Slackware forum and there will be plenty of people ready to help you, so long as you show some initiative and are willing to learn.
Samba is the best option for file sharing with Windows clients. I don't have OS/x, but I've read that it also supports SMB since 10.7, so your OS/x clients should be able to access Samba shares too.
With Slackware, you won't need to download any additional software so that the server can interact with windows and OS/x clients. Just configure Samba on the server.
If your server is not exposed to the outside internet and everyone on your network is to be allowed access to the shared files, then there is probably little additional you need to do for security.
A few other services you might consider providing to your local network:
- Network Time Protocol, ntpd, so that all systems on your network can synchronize to a common time source.
- An Apache web server, httpd, for a local website or WebDAV, another way to share files.
- FTP, vsftpd, another way to share files.
- NFS, Network File System, another way to share files.
- Openssh for ssh and sftp access to the server.
- Openvpn for secure access to your network or to the internet from insecure locations when away from home.
- A caching DNS name server, bind or dnsmasq.
- a DHCP server, dhcpd.
As much as i like fedora
it is not a good choice for a file server
( unless you are rather experienced and CAN reinstall the os every 6 months -- skipping a version and reinstalling every 13 months is ASKING for problems)
for OLD hardware CentOS 6.5 will do JUST fine
( unless it is 12+ years old hardware - if so recycling it might be a good option )
But the older CentOS 5.10 still has about 3 years of support