Linux Curricula

One of the most daunting realizations for you as a new Linux system administrator is that you will probably spend the rest of your life learning Linux. If your background has been only in DOS/Windows, welcome to a new world of discovery.

Of course, you'll learn quite a bit from just getting your workstation configured. But once you've gotten everything reasonably well configured and working, you will have reached a certain plateau. Now is probably a good time to think about educating yourself as a system and network administrator over the long term.

System Administration

Overall system administration covers an enormous breadth of knowledge. I'm using the term here just to represent managing your own personal system. Professional system administrators normally look after entire networks. But since you have the basic network information configured on your workstation, you've already read about /etc/hosts and /etc/resolv.conf and the other files that must be configured for you to connect to your ISP. You have already configured your PPP daemon or you are using usr/sbin/dip. You use ifconfig and netstat. Now let's expand the breadth of your knowledge over your personal workstation first, and then talk a little later about some networking projects.

Basic system administration requires mundane chores that you have to do on every system: backup, file system maintenance, resource management, hardware device management, scripting, and upgrades. I'm omitting security and any network management related chores for the moment. You'll need to know these at some point, but realistically, you'll probably need this other stuff first.

An indirect part of your sysadmin responsibilities will be learning your basic productivity software, some of which occupies entire bookshelves. Right now, I'm using emacs to create a LaTeX\ file that I will send to John, the editor, via pine with sendmail. Each of these pieces of software has at least one book written about them--with the possible exception of pine. As you explore your software, you learn about various .*rc files and configuring various daemons and processes, all of which will makes you a better user as well as a sysadmin.

Creating a Curriculum

I believe you could build a course of study for Linux system administration that could even be some type of degree or certificate program. At the very least, approaching your Linux studies this way could make you a well-rounded sysadmin.

Just as underclassmen in college are presented introductory classes which expose them to the basics in a single course of study, you can do the same as a new sysadmin. Your task is to expose yourself to all the basics you'll need as a sysadmin. This list could include the following:

  1. X Windows
  2. Perl
  3. Shell scripts (bash, tcsh, ksh, etc)
  4. Expect
  5. Sendmail
  6. Sed, Awk (Many believe Perl has superceded these)
  7. Programming in C and C++ using development libraries
  8. Procmail
  9. cron
  10. proc file system
  11. tar and gzip and other compression utilities
  12. DOSemu
This list could go on and on, but you could probably build at least a single college course for almost each of these. As you are exposed to new features of Linux, you can create your own course work as you learn on the job. Your final exam for each course can be to create ambitious projects and see what you can do with each subject.

Network Administration

You probably won't have the luxury of waiting until you have learned everything listed above before you must learn more about network administration. The Linux Documentation Project (LDP) contains numerous resources to help you:

These are just a few you should check out, especially if you would like to build a home network.

Perhaps one of the most important chores will be nailing down your system's security. By all rights, this could be a certificate program in itself. But for starters, I would recommend reading Essential System Administration by AEleen Frisch, published by O'Reilly & Associates, and also Practical Unix & Internet Security by Garfinkel and Spafford, another O'Reilly title.

Not only does Frisch discuss NFS and NIS services and clearly introduce TCP/IP networking concepts, she also has a good introduction to system security in Chapter 6. Garfinkel and Spafford cover many of the same topics Frisch does, but they approach them from the security specialist's perspective, and in great depth. Their book is nearly a 1000 pages, and it doesn't waste space. After plowing through their book, you'll have a some grounding in security topics from A-Z.

Other courses of study--some of which are workshops, not courses--would probably include the following:

  1. UUCP
  2. named
  3. httpd
  4. various services like tcpd and inetd and remote commands like rsh and rlogin
  5. NIS (Network Information System)
  6. NFS (Network File System)
  7. Sendmail and Smail
  8. NNTP
Again, these are just a few services you could run on your personal workstation if you also wanted to make it a server.

The Goal

My goal has been to tantalize your curiosity with the road that lies ahead. The problem with being new is that you don't know what you don't know. But hopefully, these topics above will spark some memorable voyages in the waters of Linux erudition.



David S. Jackson
Mon Jul 14 21:22:55 PDT 1997