File / print servers

By Kurt Seifried [email protected]



There are many ways to share resources over a LAN. Your main concern will be what the client side is running since most server operating systems (especially Linux) support almost all types of clients (UNIX, Windows, MAC, Novell, etc.). You will also need to take into account the type of files you are sharing, are they simply data files, work documents, source code, network boot files, or?

Network booting


tftp is used by everything from X windows terminals to Cisco routers when booting to get their initial boot files and configuration data.

UNIX file sharing


NFS is the most universal method of file sharing supported by UNIX in general. Almost every UNIX OS (Linux, *BSD, Sun, etc.) supports NFS. There are also commercial NFS clients and servers for Windows. NFS is ideal for sharing out user home directories and other real time" filesystems.


rsync is the ideal method for synchronizing large amounts of data that isn't time critical (i.e. for ftp site mirroring). It uses an extremely efficient algorithm to find files that are newer (or gone), and then retrieves them, it also has several nice security features.

Printing under Linux

There are a variety of print daemons for Linux but they generally emulate lpd (the original).


lpd is the age-old line printer daemons (when all you ever printed was text) which allows for the usage and sharing of printers. 


Common UNIX Printing System (CUPS), is GPL licensed and version 1.0 just came out. CUPS is available from:


LPR next generation, an alternative to the stock LPR.

Windows file and print sharing


SMB (server message block) is the current windows file sharing protocol. Samba does an incredible job of providing all the services required to properly share windows files (such as Primary and Backup Domain Controller services). You can also provide windows access to printers through Samba, and using smbclient access Windows printers.

General file sharing

There are also a number of generic file sharing methods that support multiple types of clients and servers.


An advanced network filesystem, not very fun to implement.


An https-based system for sharing files among machines securely. You can get it from:


A high end, commercial file sharing protocol suitable for large installations with high security and performance requirements.

Source code sharing


CVS is used to centrally maintain source code in a repository, and to allow people to make modifications, with an emphasis on the ability to roll back changes, get an old "snapshot" and so on. It is very popular for large software projects.




Last updated on 31/8/2001

Copyright Kurt Seifried 2001 [email protected]