A custom course from the GL120, GL250, and GL275 courses
Prerequisites:
None
Supported Distributions:
Red Hat Enterprise Linux 6
Course Outline:
- What is Linux?
- Unix and its Design Principles
- FSF and GNU
- GPL - General Public License
- The Linux Kernel
- Linux Kernel and Versioning
- Components of a Distribution
- Red Hat Linux Products
- Oracle Linux
- Login and Exploration
- Logging In
- Running Programs
- Interacting with Command Line
- The X Window System
- Starting X
- Gathering Login Session Info
- Gathering System Info
- got root?
- Switching User Contexts
- sudo
- Help from Commands and Documentation
- Getting Help with man & info
- Login and Discovery
- Help with Commands
- Switching Users With su
- The Linux Filesystem
- Filesystem Support
- Unix/Linux Filesystem Features
- Filesystem Hierarchy Standard
- Navigating the Filesystem
- Displaying Directory Contents
- Filesystem Structures
- Determining Disk Usage With df and du
- Determining Disk Usage With baobab
- Disk Usage with Quotas
- File Ownership
- Default Group Ownership
- File and Directory Permissions
- File Creation Permissions with umask
- Changing File Permissions
- SUID and SGID on files
- SGID and Sticky Bit on Directories
- User Private Group Scheme
- Navigating Directories and Listing Files
- Disk and Filesystem Usage
- File and Directory Ownership and Permissions
- Manipulating Files
- Directory Manipulation
- File Manipulation
- Deleting and Creating Files
- Physical Unix File Structure
- Filesystem Links
- File Extensions and Content
- Displaying Files
- Previewing Files
- Displaying Binary Files
- Searching the Filesystem
- Alternate Search Method
- Producing File Statistics
- Manipulating Files and Directories
- File Examination & Search Commands
- Shell Basics
- Role of Command Shell
- Communication Channels
- File Redirection
- Piping Commands Together
- Filename Matching
- File Globbing and Wildcard Patterns
- Brace Expansion
- Shell and Environment Variables
- Key Environment Variables
- General Quoting Rules
- Nesting Commands
- Multiple and Multi-line Commands
- Connecting Commands
- Wildcard File Matching
- Shell Variables
- Shell Meta-Characters
- Command Substitution
- Archiving and Compression
- Archives with tar
- Archives with cpio
- The gzip Compression Utility
- The bzip2 Compression Utility
- The XZ Compression Utility
- The PKZIP Archiving/Compression format
- Archiving and Compression
- Text Processing
- Searching Inside Files
- The Streaming Editor
- Replacing Text Characters
- Text Sorting
- Duplicate Removal Utility
- Extracting Columns of Text
- Combining Files and Merging Text
- Comparing File Changes
- Text Processing
- Regular Expressions
- Regular Expression Overview
- Regular Expressions
- RE Character Classes
- RE Quantifiers
- RE Parenthesis
- Pattern Matching with Regular Expressions
- Extended Regular Expressions
- Using Regular Expressions With sed
- Editing with Vim
- Text Editing
- vi and Vim
- Learning vi
- Basic vi
- Intermediate vi
- Text Editing with Vim
- Emacs
- Emacs
- The Emacs Interface
- Basic Emacs
- More Emacs Commands
- Text Editing with Emacs
- Command Shells
- Shells
- Identifying the Shell
- Changing the Shell
- Bourne sh: Configuration Files
- Script Execution
- Bourne sh: Prompts
- bash: Bourne-Again Shell
- bash: Configuration Files
- bash: Command Line History
- bash: Command Editing
- bash: Command Completion
- bash: "shortcuts"
- bash: prompt
- Setting Resource Limits via ulimit
- Linux Shells
- Bash History
- Aliases
- Bash Login Scripts
- The Z Shell
- Introduction to Shell Scripting
- Shell Script Strengths and Weaknesses
- Example Shell Script
- Positional Parameters
- Input & Output
- Doing Math
- Comparisons with test
- Exit Status
- Conditional Statements
- Flow Control: case
- The for Loop
- The while and until Loops
- Writing a Shell Script
- Process Management and Job Control
- What is a Process?
- Process Lifecycle
- Process States
- Viewing Processes
- Signals
- Tools to Send Signals
- Job Control Overview
- Job Control Commands
- Persistent Shell Sessions with Screen
- Using screen
- Advanced Screen
- Job Control Basics
- Process Management and Job Control Basics
- Screen Basics
- Using Screen Regions
- Process Administration
- Automating Tasks
- at/batch
- cron
- The crontab Command
- crontab Format
- /etc/cron.*/ Directories
- Anacron
- Managing Processes
- Tuning Process Scheduling
- Creating and Managing User Cron Jobs
- Adding System cron Jobs
- Downloading with FTP
- Downloading with FTP
- FTP
- lftp
- Command Line Internet - Non-interactive
- Command Line Internet - Interactive
- Command Line File Transfers
- The Secure Shell (SSH)
- Secure Shell
- ssh and sshd Configuration
- Accessing Remote Shells
- Transferring Files
- Alternative sftp Clients
- SSH Key Management
- ssh-agent
- Introduction to ssh and scp
- SSH Key-based User Authentication
- Using ssh-agent
- Mounting Filesystems & Managing Removable Media
- Filesystems Concept Review
- Mounting Filesystems
- Filesystem Table (/etc/fstab)
- AutoFS
- Removable Media
- On-demand filesystem mounting with AutoFS
- The X Window System
- The X Window System
- X Modularity
- X.Org Drivers
- Configuring X Manually
- Automatic X Configuration
- The X11 Protocol and Display Names
- Display Managers and Graphical Login
- Starting X Apps Automatically
- X Access Control
- Remote X Access (historical/insecure approach)
- Remote X Access (modern/secure approach)
- XDMCP
- Remote Graphical Access With VNC and RDP
- Specialized X Servers
- Remote X with XDMCP
- Configure X Security
- Configure a VNC Server
- Launching X Apps Automatically
- Secure X
- Linux Hardware Discovery, Interaction, and Control
- Hardware Discovery Tools
- Hardware and System Clock
- Console
- Virtual Terminals
- Serial Ports
- SCSI Devices
- USB Devices
- USB Configuration
- Managing Optical Media
- Tape Libraries
- Managing Linux Device Files
- Kernel Hardware Info - /sys/
- /sys/ Structure
- udev
- Kernel Modules
- Configuring Kernel Components and Modules
- Handling Module Dependencies
- Configuring the Kernel via /proc/
- Adjusting Kernel Options
- Introduction to Troubleshooting Labs
- Troubleshooting Practice: Kernel Modules
- Boot Process and SysV Init
- Booting Linux on PCs
- GRUB Configuration
- Boot Parameters
- Initial ramdisk
- /sbin/init
- System Init Styles
- Linux Runlevels
- /etc/inittab
- /etc/rc.d/rc.sysinit
- Runlevel Implementation
- System Configuration Files
- RHEL6 Configuration Utilities
- Typical SysV Init Script
- The /etc/rc.local File
- Managing Daemons
- Controlling Service Startup
- Shutdown and Reboot
- Boot Process
- GRUB Command Line
- Basic GRUB Security
- Managing Services With chkconfig
- Troubleshooting Practice: Boot Process
- Software Maintenance
- Managing Software
- RPM Features
- RPM Architecture
- RPM Package Files
- Working With RPMs
- Querying and Verifying with rpm
- Compiling/Installing from Source
- Manually Installed Shared Libraries
- Installing Source RPM Packages
- Managing Software with RPM
- Querying the RPM Database
- Installing Software via RPM & Source and Rebuilding SRPMs
- Filesystem Administration
- Partitioning Disks with fdisk
- Partitioning Disks with parted
- Filesystem Creation
- Mounting Filesystems
- Filesystem Maintenance
- Persistent Block Devices
- Resizing Filesystems
- Swap
- Filesystem Structures
- Determining Disk Usage With df and du
- Configuring Disk Quotas
- Setting Quotas
- Viewing and Monitoring Quotas
- Filesystem Attributes
- Backup Software
- Backup Examples
- Creating and Managing Filesystems
- Hot Adding Swap
- Setting User Quotas
- Using rsync and ssh for Backups
- Using tar and cpio for Backups
- Using dump and restore for Backups
- Creating ISO Images for Backups
- LVM & RAID
- Logical Volume Management
- Implementing LVM
- Creating Logical Volumes
- Manipulating VGs & LVs
- Advanced LVM Concepts
- system-config-lvm
- RAID Concepts
- Array Creation with mdadm
- Software RAID Monitoring
- Software RAID Control and Display
- Creating and Managing LVM Volumes
- Creating and Managing a RAID-5 Array
- User/Group Administration
- User and Group Concepts
- User Administration
- Modifying Accounts
- Group Administration
- Password Aging
- Default User Files
- Controlling Logins
- Manual DS Client Configuration
- system-config-authentication
- System Security Services Daemon (SSSD)
- User and Group Administration
- Using LDAP for Centralized User Accounts
- Troubleshooting Practice: Account Management
- Using NIS for Centralized User Accounts
- Pluggable Authentication Modules (PAM)
- PAM Overview
- PAM Module Types
- PAM Order of Processing
- PAM Control Statements
- PAM Modules
- pam_unix
- pam_nologin.so
- pam_limits.so
- pam_wheel.so
- pam_xauth.so
- Restricting superuser access to wheel group membership
- Using pam_nologin to Restrict Logins
- Setting Limits with the pam_limits Modules
- Using pam_limits to Restrict Simultaneous Logins
- Security Administration
- Security Concepts
- Tightening Default Security
- Security Advisories
- File Access Control Lists
- Manipulating FACLs
- Viewing FACLs
- Backing Up FACLs
- File Creation Permissions with umask
- User Private Group Scheme
- Alternatives to UPG
- User Private Groups
- Using Filesystem ACLs
- Basic Networking
- IPv4 Fundamentals
- TCP/UDP Fundamentals
- Linux Network Interfaces
- Ethernet Hardware Tools
- Network Configuration with ip Command
- Configuring Routing Tables
- IP to MAC Address Mapping with ARP
- Starting and Stopping Interfaces
- NetworkManager
- DNS Clients
- DHCP Clients
- system-config-network-{tui,cmd}
- Network Diagnostics
- Information from netstat and ss
- Managing Network-Wide Time
- Continual Time Sync with NTP
- Configuring NTP Clients
- Useful NTP Commands
- Network Discovery
- Basic Client Networking
- NTP Client Configuration
- Advanced Networking
- Multiple IP Addresses
- Configuring a DHCP server
- Enabling IPv6
- Interface Bonding
- Interface Bridging
- 802.1q VLANS
- Tuning Kernel Network Settings
- Multiple IP Addresses Per Network Interface
- Configuring IPv6
- Troubleshooting Practice: Networking
- Log File Administration
- System Logging
- Rsyslog
- /etc/rsyslog.conf
- Log Management
- Log Anomaly Detector
- Setting up a Full Debug Logfile
- Remote Syslog Configuration
- Monitoring & Troubleshooting
- System Status - Memory
- System Status - I/O
- System Status - CPU
- Performance Trending with sar
- Process Accounting
- Troubleshooting Basics: The Process
- Troubleshooting Basics: The Tools
- strace and ltrace
- Common Problems
- Troubleshooting Incorrect File Permissions
- Inability to Boot
- Typos in Configuration Files
- Corrupt Filesystems
- RHEL6 Rescue Environment
- Recovering Damaged MBR
- Using BSD Process Accounting
- Securing Services
- Xinetd
- Xinetd Connection Limiting and Access Control
- Xinetd: Resource limits, redirection, logging
- TCP Wrappers
- The /etc/hosts.allow & /etc/hosts.deny Files
- /etc/hosts.{allow,deny} Shortcuts
- Advanced TCP Wrappers
- Basic Firewall Activation
- Netfilter: Stateful Packet Filter Firewall
- Netfilter Concepts
- Using the iptables Command
- Netfilter Rule Syntax
- Targets
- Common match_specs
- Connection Tracking
- Securing xinetd Services
- Enforcing Security Policy with xinetd
- Securing Services with TCP Wrappers
- Securing Services with Netfilter
- Troubleshooting Practice
- DNS Concepts
- Naming Services
- DNS - A Better Way
- The Domain Name Space
- Delegation and Zones
- Server Roles
- Resolving Names
- Resolving IP Addresses
- Basic BIND Administration
- Configuring the Resolver
- Testing Resolution
- Configuring a Slave Name Server
- Configuring BIND
- BIND Configuration Files
- named.conf Syntax
- named.conf Options Block
- Creating a Site-Wide Cache
- rndc Key Configuration
- Zones In named.conf
- Zone Database File Syntax
- SOA - Start of Authority
- A & PTR - Address & Pointer Records
- NS - Name Server
- CNAME & MX - Alias & Mail Host
- Abbreviations and Gotchas
- $GENERATE, $ORIGIN, and $INCLUDE
- Use rndc to Control named
- Configuring BIND Zone Files
- Creating DNS Hierarchies
- Subdomains and Delegation
- Subdomains
- Delegating Zones
- in-addr.arpa. Delegation
- Issues with in-addr.arpa.
- RFC2317 & in-addr.arpa.
- Create a Subdomain in an Existing Domain
- Subdomain Delegation
- Advanced BIND DNS Features
- Address Match Lists & ACLs
- Split Namespace with Views
- Restricting Queries
- Restricting Zone Transfers
- Running BIND in a chroot jail
- Dynamic DNS Concepts
- Allowing Dynamic DNS Updates
- DDNS Administration with nsupdate
- Common Problems
- Common Problems
- Securing DNS With TSIG
- Configuring Dynamic DNS
- Securing BIND DNS
- LDAP Concepts and Clients
- LDAP: History and Uses
- LDAP: Data Model Basics
- LDAP: Protocol Basics
- LDAP: Applications
- LDAP: Search Filters
- LDIF: LDAP Data Interchange Format
- OpenLDAP Client Tools
- Alternative LDAP Tools
- Querying LDAP
- OpenLDAP Servers
- Popular LDAP Server Implementations
- OpenLDAP: Server Architecture
- OpenLDAP: Backends
- OpenLDAP: Replication
- OpenLDAP: Configuration Options
- OpenLDAP: Configuration Sections
- OpenLDAP: Global Parameters
- OpenLDAP: Database Parameters
- OpenLDAP Server Tools
- Enabling LDAP-based Login
- System Security Services Daemon (SSSD)
- Building An OpenLDAP Server
- Enabling TLS For An OpenLDAP Server
- Enabling LDAP-based Logins
- Implementing an FTP Server
- The FTP Protocol
- Active Mode FTP
- Passive Mode FTP
- ProFTPD
- Pure-FTPd
- vsftpd
- Configuring vsftpd
- Anonymous FTP with vsftpd
- Configuring vsftpd
- Pre-Installation Considerations
- Pre-Installation Considerations
- Hardware Compatibility
- Multi-OS Booting
- Partition Considerations
- Filesystem Planning
- Selecting a Filesystem
- Installing RHEL6
- Anaconda: An Overview
- Anaconda: Booting the System
- Anaconda: Common Boot Options
- Anaconda: Loading Anaconda and Packages
- Anaconda: Storage Options
- Anaconda: Troubleshooting
- FirstBoot
- Kickstart
- A Typical Install
- Linux Installation
- Automating Installation with Kickstart
- Manage Virtual Machines
- Introducing libvirt
- libvirt: Basic Concepts
- libvirt: Storage Architecture
- libvirt: Network Architecture
- libvirt: Graphical Tools
- libvirt: Command Line Tools
- virsh: Basics
- virsh: Common Tasks
- virt-install
- libguestfs and guestfish
- Installing a Virtual Machine