Academic Catalog

C S 30D: ADVANCED LINUX SYSTEM ADMINISTRATION

Foothill College Course Outline of Record

Foothill College Course Outline of Record
Heading Value
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30C or equivalent.
Degree & Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU/UC
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Student Learning Outcomes

  • The student will demonstrate the configuration and use of NFS and SMB file sharing.
  • A student will be able to demonstrate the ability to use regular expressions when writing shell scripts.

Description

Advanced systems administration of Red Hat Enterprise Linux (RHEL). Overview of automated installation, basic Linux command line usage, regular expression overview, pipelines, redirection, network configuration and troubleshooting, simple partition and filesystems creation, logical volumes, SMB and NFS network file systems, user account management, access control lists (ACLs), SELinux security overview, software package management, installed services management, log file analysis and maintenance, process management, Linux kernel tuning and maintenance, Linux troubleshooting techniques.

Course Objectives

The student will be able to:
A. Explain how automated installations of Linux can be achieved
B. Use the Linux command line
C. Demonstrate the use and application of regular expressions, pipelines, and I/O redirection
D. Perform network configuration and troubleshooting
E. Explain how to create simple partitions and filesystems
F. Demonstrate how to use logical volumes to implement flexible storage
G. Explain and apply two protocols for access network file sharing services
H. Manage user accounts
I. Configure the rules necessary to control access to files
J. Explain how to use SELinux to increase Linux security
K. Explain and demonstrate methods for installing and managing software
L. Manage installed services
M. Explain the process of analyzing and storing logs
N. Manage and control Linux processes
O. Understand and use Linux tools for tuning and maintaining the kernel
P. Understand and be able to apply basic Linux troubleshooting techniques

Course Content

A. Install Linux OS with basic automation tools.
1. Automation of installation.
B. Linux command line practice.
1. Regular expression fundamentals with grep.
2. Using grep with log files.
3. Command pipelines.
4. Redirection of I/O.
C. Network configuration and troubleshooting.
1. IPv4 networking configuration.
2. IPv6 networking configuration.
3. Link aggregation and bridging.
D. Simple partitions and filesystems.
1. Adding partitions, filesystems and persistent mounts.
2. Managing swap space.
E. Logical volume management (LVM).
1. LVM concepts.
2. Adding and extending logical volumes.
F. Network file sharing services.
1. NFS file systems.
a. Accessing network storage.
1) Mounting.
2) Unmounting
3) Auto-mounting.
b. Providing NFS file storage.
1) Exporting NFS file systems.
2) Protecting NFS exports.
2. SMB file systems.
a. Accessing network storage.
1) Mounting.
2) Unmounting.
b. Providing SMB file storage.
1) Providing SMB file shares.
2) Multiuser SMB mounts.
G. Network-defined users and groups.
1. Local users and groups concepts.
2. Using identity management services.
a. LDAP.
b. Kerberos.
H. Controlling access to files with Access Control Lists (ACLs).
1. POSIX ACL concepts.
2. Using ACLs to grant and limit access.
I. Managing SELinux security.
1. SELinux concepts.
2. Enabling and monitoring SELinux.
3. Changing SELinux modes and booleans.
J. Software installation and management.
1. Explore and use the standard package managers.
K. Manage installed services.
1. Use systemd configuration and management commands.
L. Analyze and manage log files.
1. Use the rsyslog utilities.
M. Manage and control Linux processes.
1. Process priority and "nice" concepts.
2. Using nice and renice to influence process priority.
N. Linux tools for tuning and maintaining the kernel.
1. Explore and use the kernel performance monitoring and tuning tools.
O. Linux troubleshooting techniques.
1. Controlling and troubleshooting the Linux boot process.
a. Common boot issues.
b. Resetting lost root password.
c. Repairing boot problems.
2. General troubleshooting.
a. Using syslog for troubleshooting.

Lab Content

A. Install the Linux OS both manually and with basic automation tools
1. Practice: Kickstart file syntax and modification
2. Practice: Installing RHEL with Kickstart
B. Understand and use basic regular expressions
1. Practice: matching regular expressions
2. Lab: Using regular expressions with system log files
C. Network configuration and troubleshooting
1. Practice: Configuring IPv4 networking
2. Practice: Configuring IPv6 networking
3. Lab: Managing IPV6 networking
4. Practice: Configuring network teaming
5. Practice: Configuring software bridges
6. Lab: Configuring link aggregation and bridges
D. Simple partitions and filesystems
1. Practice: Adding partitions, file systems and persistent mounts
2. Practice: Adding and enabling swap space
3. Lab: Adding disks, partitions and file systems
E. Logical volume management
1. Practice: Logical volume management concepts
2. Practice: Adding a logical vlume
3. Practice: Extending a logical volume
4. Lab: Managing LVM storage
F. Network file sharing services
1. Practice: Mounting and unmounting NFS
2. Practice: Auto-mounting NFS
3. Lab: Accessing network storage using NFS
4. Practice: Mounting an SMB file system
5. Lab: Accessing network storage using SMB
G. Network-defined users and groups
1. Need a local users and groups practice and lab material
2. Practice: Connecting to a central LDAP and Kerberos server
3. Lab: Connecting to network-defined users and groups
H. Controlling access to files with Access Control Lists (ACLs)
1. Practice: Interpret ACLs
2. Practice: Using ACLs to grant and limit access
3. Lab: Controlling access to files with ACLs
I. Managing SELinux security
1. Practice: SELinux concepts
2. Practice: Changing SELinux modes
3. Practice: Changing SELinux booleans
4. Practice: Troubleshooting SELinux
5. Lab: Managing SELinux
J. Software installation and management
1. Lab: Installing service and applications using yum
K. Manage installed services
1. Lab: Using sysctl to manage systemd servi
L. Analyze and manage log files
1. Lab: Using rlog tool to configure, manage, and analyze log files
M. Manage and control Linux processes
1. Practice: Process priority and "nice" concepts
2. Practice: Using nice and renice to influence process priority
3. Lab: Managing priority of Linux processes
N. Linux tools for tuning and maintaining the kernel
1. Lab: Exploring Red Hat kernel performance monitoring and tuning tools
O. Linux troubleshooting techniques
1. Practice: Using the proc pseudo files to view kernel state
2. Practice: Selecting a boot target
3. Practice: Resetting a lost root password
4. Practice: Repairing file systems issues at boot
5. Practice: Repairing boot problems
6. Practice: Repairing boot loader issues
7. Lab: Controlling and troubleshooting the RHEL Linux boot process

Special Facilities and/or Equipment

A. Access to a computer laboratory with current Linux based computers required to support the class.
B. A website or course management system with an assignment posting component (through which all lab assignments are to be submitted) and a forum component (where students can discuss course material and receive help from the instructor). This applies to all sections, including on-campus (i.e., face-to-face) offerings.
C. When taught via Foothill Global Access on the internet, the college will provide a fully functional and maintained course management system through which the instructor and students can interact.
D. When taught via Foothill Global Access on the internet, students must have currently existing email accounts and ongoing access to computers with internet capabilities.

Method(s) of Evaluation

A. Tests and quizzes
B. Written laboratory assignments
C. Final examination

Method(s) of Instruction

A. Lectures which include motivation for the architecture of the specific topics being discussed.
B. In-person or online labs (for all sections, including those meeting face-to-face/on-campus), consisting of:
1. An assignment webpage located on a college-hosted course management system or other department-approved internet environment. Here, the students will review the specification of each assignment and submit their completed lab work.
2. A discussion webpage located on a college-hosted course management system or other department-approved internet environment. Here, students can request assistance from the instructor and interact publicly with other class members.
C. Detailed review of laboratory assignments, which includes model solutions and specific comments on the student submissions.
D. In person or online discussion which engages students and instructor in an ongoing dialog pertaining to all aspects of designing, implementing and analyzing programs.
E. When course is taught fully online:
1. Instructor-authored lecture materials, handouts, syllabus, assignments, tests, and other relevant course material will be delivered through a college-hosted course management system or other department-approved internet environment.
2. Additional instructional guidelines for this course are listed in the addendum of CS department online practices.

Representative Text(s) and Other Materials

Sobel, Mark G. A Practical Guide to Fedora and Red Hat Enterprise Linux. 7th ed. Prentice Hall, 2014.

Boessenkool, Wander. Red Hat System Administration II. Red Hat, 2015.

 

Types and/or Examples of Required Reading, Writing, and Outside of Class Assignments

A. Reading

1. Textbook assigned reading averaging 30 pages per week.

2. Online curriculum averaging 20 pages per week.

3. Online resources as directed by instructor though links pertinent to networking.

4. Library and reference material directed by instructor through course handouts.

B. Writing

1. Technical prose documentation that supports and describes the laboratory exercises that are submitted for a grades.

 

Discipline(s)

Computer Science