CS 469 Unix/Linux Administration and Networking

From Computer Science
Jump to: navigation, search

Catalog Description

Includes installation and configuration of Unix/Linux operating system software; set-up of hardware and software for Unix/Linux networking including TCP/IP, FTP, Telnet, DNS, DHCP, and Apache; Unix/Linux administration tasks including directories, users, tuning, backup, security, and networking. Prerequisite - C or better in CS 201.


Basic Unix skills, some prior programming experience

Standard Content

Course Outline

  • Wild-cards and regular expressions
  • Files and directories:
  • The file-system tree, path traversal, links
  • Unix permissions and ACLs
  • The FHS standard: where things go in the file-system
  • Bash scripting
  • Invocation and startup, job control
  • Command lists, pipelines, redirection
  • Positional parameters and special variables, data types, the environment
  • Functions, variable scope
  • Conditionals and loops
  • Bash built-ins: read, printf, alias, etc
  • The core-utilities: sed, col, grep, tr, basename, dirname, etc.
  • Processes and threads:
  • Attributes of processes: understanding ps,top, etc output
  • /proc filesystem
  • Signals
  • Resource limits
  • Memory layout: security issues: buffer overflows, ASLR
  • Libraries
  • The boot process: boot loaders, the kernel, init, runlevels, init scripts
  • Disks: Block devices, partitioning, making file-systems, mounting/unmounting them, checking them, configuring fstab
  • Swap and virtual memory
  • RAID: levels, MD devices and mdadm
  • Basic MySQL administration: DB and user administration and backing up/archiving databases
  • Common Administrative tasks:
  • User/group administration
  • Log files, accounting files and reporting
  • Quotas
  • Networking:
  • SSH and related tools for key generation and management, scp, rsync
  • Various networking terms / OSI model
  • SSL/TLS certificates (openssl), creating signed certificates, setting up a CA purpose of certs, anatomy of a cert
  • IPv4 networking: Packets, Ethernet, ARP, DNS, CIDR, basic routing
  • The Linux Firewall (iptables) (time permitting)

Learning Outcomes

  • Comprehensive overview of command line tools used by a system administrator
  • More advanced bash scripting
  • Ability to install and configure a Linux system
  • Some Virtual Machine experience

Important Assignments and/or Exam Questions

  • Various man page reading assignments
  • Bash scripts: iterate over command line parameters and do something with them, find the largest file in a directory tree, etc.
  • Create a Virtual Machine and install Linux onto it.
  • Root administration tasks on a provided VM:
  • Setup and configure accounts
  • Setup and configure services: http and mysql
  • Install and web service(s) requiring a working web server and mysql instance
  • Create a certificate authority and sign other students cert requests

Standard resources

  • The Unix man pages
  • Tutorials Point