CS615 -- System Administration

Course Overview:

In a networked environment, the need for a skilled system administrator has become increasingly obvious, but what exactly does a System Administrator do? Traditionally, the System Administrator's job has not had a precise definition; in some places they are referred to as Systems Engineers, Site Reliability Engineers (SRE), or perhaps Web Operations. Elsewhere, the boundaries between traditional "dev" and "ops" are being torn down, yielding a collaborative culture of "DevOps".

In this class, some of the most essential aspects of system administration and the rather broad skillset required in this profession will be covered, giving students the opportunity to develop the skills necessary to architect solutions for as well as analyze and troubleshoot problems arising in every day usage of complex networks and large-scale installations.

Some of the topics covered include: fundamental operating system and filesystem concepts, software installation and package management, configuration management, task automation and tools development, TCP/IP networking, common internet services, and system security.

Students are expected to be comfortable operating in a UNIX-like environment on a user level and have a solid understanding of TCP/IP networking and Operating System concepts. All coursework will be done exclusively on the command-line on linux-lab.cs.stevens.edu and/or AWS systems. This is not an introduction to using Unix!

If you email me to waive the prerequisites, please provide information about how you meet the requirements listed above in bold. (This has the added benefit of showing that you've actually read at least this far on this page.)

If you have questions about this class, please email jschauma@stevens.edu from your @stevens.edu address and (this is important to escape the spam filters) include "[CS615]" in the subject line.


Time, Date & Place:

Interactive/synchronous: Mondays, 18:15 - 20:45 Eastern, via Zoom
Online on-demand: anytime via YouTube video lectures

Instructor:

Jan Schaumann [jschauma@stevens.edu]

Resources:

Content and discussions:

Assignments and meta-information:


Textbooks:

This class does not have any strictly required textbooks. However, there are some books which are recommended, if only as a reference throughout the semester. These are:

Other suggested reading:

Systems Used

In this class, we will make use of Amazon's Elastic Compute Cloud for most homework assignments; this will give students the chance to gain valuable experience in new technologies currently in high demand in the industry (cloud computing, IPv6) and also provide a possibility for students to gain superuser access to a number of operating systems otherwise not available at Stevens.

As a student, you should qualify for Amazon's AWS Educate program.

We will access EC2 from and use for almost all assignments and exercises the university's linux-lab.cs.stevens-tech.edu systems. It is the students' responsibility to get an account on these systems prior to the start of the class.


Grading:

There will (probably) be:
  • course participation, questionnaires, and course notes (12% of the grade)
  • a meetup requirement (8% of the grade)
  • three individual homework assignments (40% of the grade)
  • one class project (25% of the grade)
  • a group project (CtF) towards the end of the semester (15% of the grade)
Letter grades will be given as follows:
  • 90% - 100% of total points => A
  • 80% - 89.99% => B
  • 70% - 79.99% => C
  • 0 - 69.99% points => F
Within each letter grade, there are +/- grades given at the discretion of the instructor. (Exception: there is no A+)

Plagiarism, Cheating and other ways to get an F

This really should not be necessary, but just to preempt any complains that I did not make myself clear:
Students are responsible for their own work. It is unethical (and in some cases illegal) to present as one's work the ideas, words or representations of another without the proper indication of the source. Therefore, it is the student's responsibility to give credit for any quotation, idea or data (such as statistical data or source code) borrowed from an outside source.

Failure to do so constitutes plagiarism, may imply copyright infringement and license violations and is viewed as cheating in this class, yielding a failing grade.
Any incidents are reported to the Dean of Graduate Academics, as per the Graduate Student Code of Academic Conduct.

Note: even if the license/author allows usage of the code or content, you may still not copy it and hand it in as your own work. You are responsible for your own work. Google->StackOverflow->copy'n paste does not count as "work", regardless of how long it took you.


Homework Assignments:

The following are the assignments from the Spring 2020 semester. Assignments may be changed in 2021.

The following exercises are not graded, but are recommended to be completed before or soon after the given lecture to help you better understand the concepts dicussed:


Syllabus:

Lecture slides and other supporting material listed here is from the Spring 2020 semester and may be updated/changed throughout the Spring 2021 semester. Updated materials will be uploaded here after each class.
Date Topic Suggested Reading Material Course Material
2021-02-01 Introduction, Policies, Overview, UNIX history and basics Frisch: Preface
Nemeth et al: Chap. 1
Burgess: Chap. 1, 2, 14
Limoncelli & Hogan: Preface, 26
SAGE Job Descriptions for System Administrators
An Introduction to System Administration
Unix
Documentation Techniques
Week 01 Self-check

Week 01, Segment 1: Introduction
[slides] [video lecture] [transcript]
 
Week 01, Segment 2: The Job of a System Administrator
[slides] [video lecture] [transcript]
 
Week 01, Segment 3: Core Principles
[slides] [video lecture] [transcript]
 
Week 01, Segment 4: UNIX History
[slides] [video lecture] [transcript]
 
Week 01, Segment 5: Just enough git(1) -- but without GitHub!
[slides] [video lecture] [transcript]
 
Week 01, Segment 6: Homework 1: Warming up to EC2
[slides] [video lecture] [transcript]
 
Zoom Class Recording (requires a Stevens account)
HW#1
2021-02-08 Storage Models and Disks Frisch: Chap. 10
Nemeth et al: Chap. 5, 8
File Systems and Storage Models
Warmup Exercise: AWS aliases
[slides] [video lecture] [transcript]
 
Week 02, Warmup Exercise 1: No Space Left On Device
[slides] [video lecture] [transcript]
 
Week 02, Warmup Exercise 2: Moving an EBS Volume across OS
[slides] [video lecture] [transcript]
 
Week 02, Segment 1: Storage Models and Disks
[slides] [video lecture] [transcript]
 
Week 02, Segment 2: Devices and Interfaces
[slides] [video lecture] [transcript]
 
Week 02, Segment 3: Storage Virtualization
[slides] [video lecture] [transcript]
 
Week 02, Segment 4: Physical Disk Structure
[slides] [video lecture] [transcript]
 
Week 02, Segment 5: Partitions
[slides] [video lecture] [transcript]
 
Lecture 02: Partition Exercise
Week 02 Self-check

2021-02-15 Presidents' Day
2021-02-22 Filesystem Basics
Software Types
Limoncelli & Hogan: Chap. 23 (in first edition) or Chap. 28 (in second edition)
Burgess (Principles): Chap. 4.6 - 4.8
Frisch: Parts of Chap. 3
File Systems and Storage Models
Software Installation and Package Management
Week 03, Segment 1: The Boot Process & the MBR
[slides] [video lecture] [transcript]
 
Week 03, Segment 2: Filesystems
[slides] [video lecture] [transcript]
 
Week 03, Segment 3: The Unix Filesystem
[slides] [video lecture] [transcript]
 
Week 03, Segment 4: Files go hier(7)
[slides] [video lecture] [transcript]
 

Zoom Class Recording (requires a Stevens account)
Week 03 Self-check

boot sequences for different OS
2021-03-01 Software Installation & Multi-user basics Frisch: Chap. 6
Burgess: Chap. 5
Nemeth et al: Chap. 3, 6, 27
Software Installation and Package Management
Of Users and Groups
Week 04, Segment 1: Types of Software
[slides] [video lecture] [transcript]
 
Week 04, Segment 2: OS Installation
[slides] [video lecture] [transcript]
 
Week 04, Segment 3: Package Management
[slides] [video lecture] [transcript]
 
Week 04, Segment 4: Package Management Pitfalls
[slides] [video lecture] [transcript]
 
Zoom Class Recording (requires a Stevens account)
Package Manager Exercise
Exercise: adding users
Week 04 Self-check

Multiuser Fundamentals slides
2021-03-08 Networking I Frisch: Chap. 5
Nemeth et al: Chap. 13, 15, 20
Burgess: Chap. 3, 10
Limoncelli & Hogan: Chap. 18
Week 05, Segment 1: Networking I: Layers
[slides] [video lecture] [transcript]
 
Week 05, Segment 2: Networking I: IPv4 Basics & CIDR subnetting
[slides] [video lecture] [transcript]
 
Week 05, Segment 3: Networking I: IPv6 Basics
[slides] [video lecture] [transcript]
 
Week 05, Segment 4: Networking I: IP Allocation & IPv4 Exhaustion
[slides] [video lecture] [transcript]
 
Week 05, Segment 5: Networking I: The Physical Internet
[slides] [video lecture] [transcript]
 
Week 05, Segment 6: Networking I: A Network of Networks
[slides] [video lecture] [transcript]
 
Zoom Class Recording (requires a Stevens account)
Week 05 Self-check
2021-03-15 Networking II Frisch: Chap. 5
Nemeth et al: Chap. 13, 15, 20
Burgess: Chap. 3, 10
Limoncelli & Hogan: Chap. 18
Week 06, Segment 1: Networking II: A Simple Request
[slides] [video lecture] [transcript]
 
Week 06, Segment 2: Networking II: A Simple Request II
[slides] [video lecture] [transcript]
 
Week 06, Segment 3: Networking II: ARP and NDP
[slides] [video lecture] [transcript]
 
Week 06, Segment 4: Networking II: ICMP
[slides] [video lecture] [transcript]
 
Zoom Class Recording (requires a Stevens account)
telnet ktrace(1)/kdump(1) output
telnet pcap
HW#2: packet capture
2021-03-22 DNS, HTTP Frisch: Chap. 9
Nemeth et al: Chap. 16, 19, 22
Burgess: Chap. 9
Limoncelli & Hogan: Chap. 19
Week 07, Segment 1: The Domain Name System, Part I
[slides] [video lecture] [transcript]
 
Week 07, Segment 2: The Domain Name System, Part II
[slides] [video lecture] [transcript]
 
Week 07, Segment 3: The Domain Name System, Part III
[slides] [video lecture] [transcript]
 
Zoom Class Recording (requires a Stevens account)
Week 07 Self-check
Lecture 07 slides
HW#3: DNS packet capture
2021-03-29 SMTP, HTTPS Frisch: Chap. 15
Nemeth et al: Chap. 21
Limoncelli & Hogan: Chap. 22
Your E-Mail Validation Logic is Wrong
Week 08, Segment 1: E-Mail, Part I
[slides] [video lecture] [transcript]
 
Week 08, Segment 2: E-Mail, Part II
[slides] [video lecture] [transcript]
 
Week 08, Segment 3: E-Mail, Part III
[slides] [video lecture] [transcript]
 
Zoom Class Recording (requires a Stevens account)
HTTP Exercise
SMTP Exercise
Week 08 Self-check
Lecture 08 slides
2021-04-05 Writing System Tools Frisch: Chap. 14, Append. A
Nemeth et al: Chap. 9
Automation
Building Scalable Tools
Writing System Tools
Writing Consistent Tools
Week 09 Self-check
Lecture 09: Regex Exercise
Lecture 09: Scripting Exercise
Lecture 09: Bugfiling Exercise
Lecture 09 slides
shell basics
2021-04-12 Backup and Disaster Recovery / Monitoring Frisch: Chap. 8.1, Chap. 11
Nemeth et al: Chap. 16, Chap. 10
Limoncelli & Hogan: 26
SAGE Booklet: Backups and Recovery
SAGE Booklet: Building a Logging Infrastructure
Week 09/10, Segment 1: Backups, Part I
[slides] [video lecture] [transcript]
 
Week 09/10, Segment 2: Backups, Part II
[slides] [video lecture] [transcript]
 
Week 09/10, Segment 3: Time Machines and Snapshots
[slides] [video lecture] [transcript]
 
Monitoring slides

Week 10 Self-check
Know a Unix Command: tar(1)
Lecture 10: Backup Exercise
2021-04-19 Configuration Management Configuration Management Week 11 Self-check
Lecture 11 slides
2021-04-26 System Security Frisch: Chap. 7
Nemeth et al: Chap. 21
Burgess: Chap. 11, 12
Limoncelli & Hogan: Chap. 7

Information Security Basics
The Attack Life Cycle
Week 12 Self-check
Lecture 12 slides

2021-05-03 Ethics and Social Responsibility Primum non nocere
All is not lost (but we need your help)
Week 13 Self-check
Lecture 13 slides
2021-05-10 Review All course materials and additional links. Review Self-check
Lecture 14 slides
Capture the Flag!