Samba is an unusually complex and flexible file-sharing server. Most Linux distributions ship with default Samba configurations that require only a couple of adjustments to work on a typical network. Making further adjustments (particularly if you want a Samba server to function as a domain controller) and adding shares for your particular purposes may take more effort, but most of the individual adjustments are not too onerous. One area in which Samba shows its flexibility particularly well is in its ability to run commands on demand. You can use this feature to have a Samba server provide functionality you probably wouldn't normally associate with a file server, such as the ability to create CDs.