Get in Touch

Course Outline

The Debian Distribution

Understanding Debian

  • Selecting a Debian release
  • Accessing Debian support and assistance
  • The Debian community ecosystem

Console Fundamentals

  • Working with the shell prompt
  • The shell prompt in X environments
  • Managing root access: root shell prompt (su, sudo, executing programs as root in X)
  • GUI-based system administration utilities
  • Switching between virtual consoles
  • Exiting the command prompt
  • Shutting down the system properly
  • Restoring a responsive console state
  • Recommended additional packages for beginners
  • Creating secondary user accounts
  • Configuring sudo permissions

The Filesystem

  • Managing filesystem permissions
  • Controlling default permissions for new files via umask
  • Group-based permission management
  • File timestamps
  • Hard and symbolic links
  • Named pipes (FIFOs)
  • Network sockets
  • Standard device files
  • Special device files
  • procfs and sysfs interfaces

Midnight Commander (MC)

  • Customizing MC settings
  • Launching MC
  • Using the file manager within MC
  • Command-line shortcuts in MC
  • Editing text with MC’s internal editor
  • Viewing files with MC’s internal viewer
  • Automating tasks with MC’s auto-start features
  • Accessing FTP via MC’s virtual filesystem

The Basic Unix-like Work Environment

  • The login shell
  • Tailoring bash behavior
  • Using special keyboard shortcuts
  • Navigating with the pager
  • Setting a default text editor
  • Exiting vim effectively
  • Logging shell session activities
  • Essential Unix commands

The Simple Shell Command

  • Executing commands and using environment variables
  • The "$LANG" variable
  • The "$PATH" variable
  • The "$HOME" variable
  • Using command-line options
  • Shell globbing patterns
  • Interpreting command return values
  • Common command sequences and shell redirection
  • Creating command aliases

Unix-like Text Processing

  • Essential Unix text utilities
  • Using regular expressions
  • Working with replacement expressions
  • Performing global substitutions with regex
  • Extracting data from tabular text files
  • Writing script snippets for command piping

Debian Package Management

Prerequisites for Debian Package Management

  • Configuring packages
  • Basic safety precautions
  • Living with continuous upgrades
  • Basics of Debian archives
  • Understanding package dependencies
  • The workflow of package management events
  • Initial steps to resolve package management issues

Basic Package Management Operations

  • Comparing apt-get/apt-cache vs. aptitude
  • Performing basic operations via the command line
  • Interactive usage of aptitude
  • Key shortcuts for aptitude
  • Browsing package views in aptitude
  • Search options in aptitude
  • Using regex formulas in aptitude
  • Resolving dependencies with aptitude
  • Reviewing package activity logs

Examples of aptitude Operations

  • Listing packages using regex name matching
  • Browsing with regex-based filtering
  • Permanently purging removed packages
  • Organizing auto vs. manual installation statuses
  • Executing a system-wide upgrade

Advanced Package Management Operations

  • Advanced command-line package operations
  • Verifying installed package files
  • Protecting the system from package-related issues
  • Searching package metadata

Debian Package Management Internals

  • Understanding archive metadata
  • Top-level "Release" files and authenticity verification
  • Archive-level "Release" files
  • Fetching package metadata
  • Package state management in APT
  • Package state management in aptitude
  • Local caching of downloaded packages
  • Debian package file naming conventions
  • Using the dpkg command
  • Using the update-alternative command
  • Using the dpkg-statoverride command
  • Using the dpkg-divert command

Recovering from a Broken System

  • Handling incompatibilities with old user configurations
  • Resolving file conflicts between packages
  • Fixing broken package scripts
  • Rescuing the system using dpkg
  • Restoring package selection data

Tips for Package Management

  • How to select Debian packages
  • Managing packages from mixed archive sources
  • Adjusting candidate versions
  • Managing Updates and Backports
  • Automating package downloads and upgrades
  • Limiting APT download bandwidth
  • Performing emergency downgrades
  • Identifying package uploaders
  • Using the equivs package
  • Porting packages to stable systems
  • Configuring a proxy server for APT
  • Setting up small public package archives
  • Recording and duplicating system configurations
  • Converting or installing alien binary packages
  • Extracting packages without using dpkg
  • Further reading on package management

System Initialization

  • Overview of the boot strap process
  • BIOS, boot loaders, and mini-Debian systems
  • Understanding runlevels
  • Configuring runlevels
  • Examples of runlevel management
  • Default parameters for init scripts
  • Setting the hostname
  • Filesystem initialization
  • Network interface setup
  • Network service startup
  • Processing system messages
  • Reading kernel messages
  • The udev system
  • Initializing kernel modules

Authentication and Security

  • Standard Unix authentication methods
  • Managing account and password details
  • Creating strong passwords
  • Generating encrypted passwords
  • Working with PAM and NSS
  • Configuring files used by PAM and NSS
  • Implementing modern centralized system management
  • "Why GNU su does not support the wheel group"
  • Enforcing stricter password policies
  • Implementing other access controls
  • Using sudo effectively
  • Applying SELinux and Apparmor
  • Restricting access to specific server services
  • Enhancing authentication security
  • Transmitting passwords securely over the Internet
  • Using Secure Shell (SSH)
  • Additional security measures for Internet connections
  • Securing the root password

Network Setup

Basic Network Infrastructure

  • Domain names
  • Hostname resolution
  • Naming network interfaces
  • Defining LAN network address ranges
  • Network device support

Modern Network Configuration for Desktops

  • Using GUI network configuration tools

Low-Level Network Configuration

  • Using Iproute2 commands
  • Performing safe low-level network operations

Network Optimization

  • Determining optimal MTU
  • Configuring MTU settings
  • Optimizing TCP for WAN connections

Netfilter Infrastructure

Network Applications

The Mail System

  • Fundamentals of modern mail services
  • Mail configuration strategies for workstations

Mail Transport Agent (MTA) and Mail User Agent (MUA)

  • Introduction to exim4
  • Using Mutt as a basic MUA

Mail Delivery Agent (MDA) with Filters

  • Configuring maildrop
  • Configuring procmail
  • Redelivering mbox contents

POP3/IMAP4 Server

Remote Access Server and Utilities (SSH)

  • SSH fundamentals
  • Port forwarding for SMTP/POP3 tunneling
  • Connecting without remote passwords
  • Handling non-standard SSH clients
  • Setting up ssh-agent
  • Shutting down remote systems via SSH
  • Diagnosing SSH issues

Other Network Application Servers

Other Network Application Clients

Diagnosing System Daemons

The X Window System

  • Setting up the desktop environment
  • Understanding server/client relationships
  • The X server
  • Launching the X Window System
  • Starting X sessions with gdm
  • Customizing X sessions (traditional method)
  • Customizing X sessions (modern method)
  • Connecting remote X clients via SSH
  • Using secure X terminals over the Internet
  • X-based applications
  • X office suite applications
  • X utility applications

System Tips

The Screen Program

  • Use cases for screen(1)
  • Key bindings for the screen command

Data Recording and Presentation

  • Using the log daemon
  • Analyzing logs
  • Cleanly recording shell activities
  • Customizing text data display
  • Customizing time and date display
  • Using colorized shell echo
  • Colorizing command outputs
  • Recording editor actions for complex repetitions
  • Capturing graphics from X applications
  • Tracking changes in configuration files

Data Storage Tips

  • Configuring disk partitions
  • Accessing partitions using UUID
  • Filesystem configuration
  • Creating and checking filesystem integrity
  • Optimizing filesystems via mount options
  • Optimizing filesystems via superblock settings
  • Hard disk optimization
  • Predicting hard disk failures using SMART
  • Expanding storage space using LVM
  • Expanding storage by mounting additional partitions
  • Expanding storage using symbolic links
  • Expanding storage using aufs

Data Encryption Tips

  • Encrypting removable disks with dm-crypt/LUKS
  • Encrypting swap partitions with dm-crypt
  • Automatic file encryption using eCryptfs
  • Automatic mounting of eCryptfs volumes

Monitoring, Controlling, and Starting Program Activities

  • Timing processes
  • Managing scheduling priority
  • Using the ps command
  • Using the top command
  • Listing files opened by a process
  • Tracing program activities
  • Identifying processes using files or sockets
  • Repeating commands at constant intervals
  • Looping commands over files
  • Launching programs from the GUI
  • Customizing startup programs
  • Terminating processes
  • Scheduling one-time tasks
  • Scheduling recurring tasks
  • Using the Alt-SysRq key

System Maintenance Tips

  • Identifying users on the system
  • Issuing system-wide warnings
  • Identifying hardware
  • Configuring hardware
  • Managing system and hardware time
  • Terminal configuration
  • Sound infrastructure setup
  • Disabling screen savers
  • Disabling beep sounds
  • Monitoring memory usage
  • Checking system security and integrity

The Kernel

  • Kernel parameters
  • Kernel headers
  • Compiling the kernel and related modules
  • Compiling kernel source: Debian standard method
  • Compiling module source: Debian standard method
  • Installing non-free hardware drivers

Virtualized Systems

  • Virtualization tools
  • Virtualization workflows
  • Mounting virtual disk image files
  • Using chroot systems
  • Managing multiple desktop systems

Data Management

Sharing, Copying, and Archiving

  • Archive and compression tools
  • Copy and synchronization tools
  • Common idioms for archiving
  • Common idioms for copying
  • Common idioms for file selection
  • Backup and recovery procedures
  • Backup utility suites
  • Example script for system backup
  • Script for data backup copying
  • Managing removable storage devices
  • Sharing data over the network
  • Using archive media

Binary Data

  • Viewing and editing binary data
  • Manipulating files without mounting disks
  • Data redundancy
  • Data file recovery and forensic analysis
  • Splitting large files into smaller chunks
  • Clearing file contents
  • Creating dummy files
  • Erasing an entire hard disk
  • Erasing unused areas of a hard disk
  • Recovering deleted but still open files
  • Finding all hardlinks
  • Identifying hidden disk space consumption

Data Security Infrastructure

  • GnuPG key management (signing and encryption)
  • Calculating MD5 sums

Requirements

No prior specific requirements are necessary for participation in this course.

 35 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories