Self-Study for Linux SysAdmin
In order to successfully build and operate many commonly used servers, including packet BBSs, mail servers, VoIP servers, and more, some basic Linux system administration (“sysadmin”) knowledge is required. This page provides a guide for the minimum Linux knowledge that anyone would need in order to be successful in running a Linux system. Those new to Linux can use this list as a syllabus for self study.
Over time, this syllabus will be enhanced with pointers to useful reference materials. In the mean time, any Internet search engine will find numerous sources for each topic.
Note: Most of the Santa Clara County ARES/RACES BBS network runs on Ubuntu Linux. We stick to the LTS (Long Term Support) versions. P1 credential candidates will need to use the current Ubuntu LTS version.
Prerequisites: Solid computer skills, attention to detail, self-motivation, and an ability to figure things out on the fly are all critical attributes of a successful Linux SysAdmin.
References
Books:
-
Ubuntu 18.04 LTS Desktop: Applications and Administration
A good overview for Ubuntu Desktop, including changes from previous LTS versions - Ubuntu 18.04 LTS Server: Administration and Reference
- Ubuntu Unleashed 2019 Edition: Covering 18.04, 18.10, 19.04 (13th Edition)
- UNIX and Linux System Administration Handbook
Study Topics
One needn’t be an expert at any of the individual topics listed here. But one must be competent enough with each topic to perform common, everyday tasks. For example, it is not enough to have read a book or web page about the “vi” editor. One must be able to use the vi editor to create a file, edit the file, move around in the file, edit/change the file, undo a change, save a change, exit with and without saving the file, re-open the file, cut-and-paste within the file, cut-and-paste to/from other files, etc. In other words, a solid working knowledge will be needed to accomplish real sysadmin file editing tasks. The same level of understanding applies to all of the topics listed below.
In order to operate a standalone server, such as a standalone packet BBS, the following minimum knowledge (and probably more) is needed.
- Operating System installation
- Installation of Ubuntu YY.04 LTS Desktop, choice of disk partitioning
- Ubuntu GUI
- Unity, Dash, launcher, system settings, task bar, desktops/workspaces
- Package management
- Ubuntu Software Center, Synaptic Package Manager, Ubuntu Software Update, apt/apt-get, dpkg
- Help
- man, info, which
- Directory and file manipulation commands
- mkdir, mvdir, rmdir, ls, cp, mv, rm, ln, file, head, tail, cat, less, tar, g(un)zip, find
- Ownership and permissions
- add/modify/delete user, add/modify/delete group, chown, chgrp, chmod
- File editing
- vi, nano, gedit
- Bash shell functionality
- stdin, stdout, stderr, input redirection (<), output redirection (>), pipes (|), simply shell scripts
- Session management
- screen
- Remote login and file transfer
- telnet, ssh, PuTTY, ftp, sftp, Filezilla
- Serial port communications
- udev, cat, echo, minicom, cutecom
- Network communications
- ip addressing, subnetting, ping, host, dig
- Compile C software
- make, gcc
- Logging and log rotation
- logrotate, syslog
As you become more proficient and connect your system to other systems on a network, you’ll need some additional knowledge.
- Bash shell
- Advanced shell scripting, regex, sed, awk
- Network functionality
- traceroute, tracepath, mtr
- Network routing
- Static routing
- Packet capture
- tcpdump, tshark, Wireshark
- Security
- iptables, fail2ban