Make an Old PC Into a Linux-Based File and Print Server
Using Linux instead of Windows XP as your server operating system has several advantages. Linux runs better on older, slower machines, and is generally more stable. While Windows may need rebooting every few weeks, Linux systems can run for months or years without requiring any maintenance. Plus, with Linux creating private folders is easier. The free Ubuntu distribution of Linux is simple to use and comes with everything you need.
You'll quickly fill up disk space, so make sure you have at least 80GB. Next, go to the Ubuntu Linux site to download a CD image of the Ubuntu Linux distribution, burn it to a CD-R disc with a program like ISO Recorder, pop the CD into the old PC, and start it up. When you see the Ubuntu logo and the Boot: prompt, press Enter. Run through the installation, accepting the default settings (except for the hostname; for this, enter something like Server, and make a note of the name). Create a username and password when requested. The installation will reformat your hard drive (so make sure you've copied all of the files you want to keep), install Ubuntu Linux, and get the server running. When the install is finished, remove the CD and press Enter to reboot.
Once the system has finished installing and configuring the software that comes with it, you'll be greeted by a log-in prompt. Enter the user name and password you created during the installation. Now you can start configuring the server. First, install some of the software that will allow this Linux system to talk to Windows computers. Click System, Administration, Synaptic Package Manager. In the Package Manager screen, scroll down the list on the left and click Networking. Now scroll down the list of packages on the right and right-click Samba. Select Mark for installation and click Apply to install the software. Next, you'll need to alter one of the configuration files. Select Application, System Tools, Run as different user. In the dialog box, type sudo gedit -w /etc/samba/smb.conf. This will open the file you need to edit. Scroll down the file until you reach the section headed Share Definitions and change the settings on the following lines to read this way:
browseable = Yes
create mask = 0775
directory mask = 0775
Select File, Save and then File, Quit.
Next you must add the users who need to be able to log in to the server and read and write the files. Click Administration, Users and Groups, and add a new user. To add a password for the user, select Applications, Accessories, Terminal. Into the terminal screen that pops up, type sudo smbpasswd -a username, replacing username with the name of the user you just created. When prompted, enter a password. Next, type sudo /etc/init.d/samba reload and press Enter (this reloads the file-sharing software, which you have to do whenever you change a user's status). Repeat the process for every user, and then close the terminal window.
Finally, create a folder for music, videos, and other files that everyone can access. Right-click the desktop and select Create New Folder. Name the new folder something like Public, then right-click this folder and select Share folder. Give the folder an obvious name (such as Public Share) and select Allow browsing.
Now open Windows Explorer on one of the Windows machines that will access the server, type \\Server in the address bar, and press Enter. You'll be asked for a user name and password; enter one of the user names you created and press Enter again. You'll then see the folders for the user on the server: The Homes folder is for files that only the current user can access, and the Public Share folder is the one that anybody can read. You can map a drive letter to either by right-clicking the folder and selecting Map Network Drive.
Once the server is set up, you can put it in a closet or your basement and leave it running. You can even control it remotely; the Ubuntu distribution includes the remote-control program VNC, so you can remotely log in and reconfigure the system as required (see the Ubuntu documentation for details).