CS 469 Unix/Linux Administration and Networking
Contents
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.
Prerequisites
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