As our series thus far has shown, defining the role of a "system administrator" defies simple categorization. System administrators are the ultimate generalists of computing whose skills fall roughly into six categories:
- Software management, such as testing, installing, updating, and removing.
- User management, such as adding and deleting users, and managing access controls.
- Server management, backups, and security.
- Network administration, such as routing, subnetting, and host configuration.
- Desktop administration, such as setting up new employees and configuring notebooks for mobile users.
- Good people skills.
While large enterprises usually have specialized job roles, in smaller shops a single sys admin may be the entire IT department. Thus, this is not a good profession for someone who is comfortable only with strictly defined job duties. However, someone who enjoys a variety of duties and the challenge of keeping up with new technologies may well find it the best job in the world.
Learning on the Job: Regardless of preferred operating system or area of focus, the most useful trait a sys admin can have is the ability to learn new things quickly. Computing is still very much in its infancy, and constant change is going to remain the norm for many years to come. Plus, there is no way to be completely prepared for any job no matter how many years of experience you have. Every job is different in its requirements, budget, and the unique infrastructure the enterprise has accumulated.
Essential Basics: So what constitutes an essential basic Unix skills set? Start with TCP/IP networking, Ethernet, and name resolution. And don't forget DHCP (dynamic host configuration protocol), which goes hand-in-hand with name resolution.
Then, get a good grounding in shell scripting, awk, and Perl. Writing your own scripts is the path to sys admin sanity and happiness because you'll be able to automate and customize jobs. A bit of C programming is useful to Unix sys admins as well makefiles, building packages from sources, compiling kernels, and applying patches all make much more sense when you understand C.
Complementing scripting, the way jelly complements peanut butter, are regular expressions. These are the magic incantations that allow the searching and modification of files, and batches of files, with great precision.
What constitutes an essential basic Unix skills set? Start with TCP/IP networking, Ethernet, and name resolution. And don't forget DHCP (dynamic host configuration protocol), which goes hand-in-hand with name resolution.
And, of course, knowledge of Unix itself is required: filesystem structure and utilities, Unix networking protocols, managing services, configuring hardware and software, logging, remote administration, running headless boxes, troubleshooting, and the ability to whip up a competent iptable firewall in your sleep. There are many different Unix variants. All of them are similar, but you'll be faced with learning different ways to do common tasks.
Finally, don't forget hardware. Knowing how to build a machine from scratch, diagnose, and make repairs is crucial.
Big Picture: One of the most useful abilities a sys admin can have is the ability to see the pros and cons of different technical choices, and to make a sensible choice between them. Being able to see the big picture and make smart choices is more important than having detailed knowledge of every little chore. You can always figure out details, but if your infrastructure is poorly designed, nothing will work right. In the Unix world, this often means choosing between an expensive commercial product or rolling your own: How many stand-alone servers should you have? What should be combined? In-source or out-source? When does it make sense to upgrade? Most networks are mixed, so having at least a working knowledge of Windows and MacOS X will make you that much more useful, and better equipped to make decisions.
People Skills: At some point, it became fashionable to leave manners behind, but a sys admin without patience and good people skills is useless. The nature of the job is to serve a variety of users as well as possible, both bosses and employees, and to document the work and infrastructure so other IT staff members can follow easily in the sys admin's footsteps. Most businesses think of IT as an unavoidable expense, rather than an asset, so being able to clearly articulate and make a business case for expenditures, especially to non-technical people, why you believe a particular course of action is beneficial.
Education: There are many paths to becoming a sys admin. A computer science or information technology degree is a good foundation on which to build. Vendor certifications are useful, assuming they are backed up by solid training. Degrees and certifications open doors but are not a substitute for ability. Many sys admins are self-taught, but as computing becomes increasingly complex, formal training is going to get you where you want to be a lot faster.
Special thanks to the gang at Linuxchix.org for contributing to this article.