Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Duration 35 hours
Course Outline
Debian Distribution
Understanding Debian
- Selecting the appropriate Debian version
- Accessing Debian support and resources
- The Debian community ecosystem
Console Fundamentals
- Understanding the shell prompt
- Using the shell prompt within an X environment
- Managing the root account and using root privileges (su, sudo, executing programs as root under X)
- Utilizing GUI-based system administration tools
- Working with virtual consoles
- Exiting the command prompt correctly
- Properly shutting down the system
- Restoring a stable console state
- Recommended additional packages for beginners
- Creating additional user accounts
- Configuring sudo access
The Filesystem
- Managing filesystem permissions
- Controlling default permissions for new files using umask
- Setting permissions for user groups
- Understanding timestamps
- Working with symbolic and hard links
- Using named pipes (FIFOs)
- Understanding sockets
- Handling device files
- Special device file operations
- Interacting with procfs and sysfs
Midnight Commander (MC)
- Customizing the MC interface
- Launching Midnight Commander
- Using the file manager within MC
- Employing command-line shortcuts in MC
- Using the built-in editor in MC
- Using the built-in viewer in MC
- Configuring auto-start features in MC
- Using the FTP virtual filesystem in MC
Essential Unix-like Work Environment
- Understanding the login shell
- Customizing bash settings
- Using special keyboard strokes
- Navigating with the pager
- Setting a default text editor
- Exiting vim correctly
- Logging shell activities
- Essential Unix commands
Basic Shell Command Usage
- Executing commands and using environment variables
- Understanding the "$LANG" variable
- Understanding the "$PATH" variable
- Understanding the "$HOME" variable
- Using command-line options
- Utilizing shell glob patterns
- Checking command return values
- Constructing command sequences and using shell redirection
- Creating command aliases
Unix-like Text Processing
- Standard Unix text tools
- Using regular expressions
- Applying replacement expressions
- Performing global substitutions with regular expressions
- Extracting data from text-based tables
- Script snippets for piping commands
Debian Package Management
Prerequisites for Debian Package Management
- Configuring packages
- Basic safety precautions
- Managing systems with continuous upgrades
- Fundamentals of Debian archives
- Understanding package dependencies
- The workflow of package management events
- Initial steps when encountering package management issues
Core Package Management Operations
- Comparing apt-get/apt-cache with aptitude
- Performing basic package management via the command line
- Using aptitude interactively
- Applicable key bindings for aptitude
- Package views available in aptitude
- Search options in aptitude
- Using regex formulas in aptitude
- Resolving dependencies with aptitude
- Reviewing package activity logs
Practical Aptitude Examples
- Listing packages using regex matching on names
- Browsing packages with regex matching
- Permanently purging removed packages
- Organizing auto/manual installation status
- Performing system-wide upgrades
Advanced Package Management Operations
- Advanced command-line package management techniques
- Verifying installed package files
- Implementing safeguards against package issues
- Searching package metadata
Internal Mechanics of Debian Package Management
- Archive metadata structure
- The top-level "Release" file and authenticity verification
- Archive-level "Release" files
- Fetching package metadata
- Package state tracking in APT
- Package state tracking in aptitude
- Local caching of fetched packages
- Naming conventions for Debian package files
- Using the dpkg command
- Using the update-alternative command
- Using the dpkg-statoverride command
- Using the dpkg-divert command
Recovering from a Broken System
- Addressing incompatibilities with legacy user configurations
- Handling file conflicts between different packages
- Repairing broken package scripts
- Using dpkg commands for rescue operations
- Restoring package selection data
Package Management Tips
- Strategies for selecting Debian packages
- Managing packages from mixed archive sources
- Adjusting candidate package versions
- Working with Updates and Backports
- Automating package downloads and upgrades
- Limiting APT download bandwidth
- Performing emergency package downgrades
- Identifying package uploaders
- Using the equivs package
- Porting packages to stable systems
- Configuring proxy servers for APT
- Managing small public package archives
- Recording and replicating system configurations
- Converting or installing non-Debian binary packages
- Extracting packages without using dpkg
- Further resources for package management
System Initialization
- Overview of the bootstrap process
- BIOS, boot loaders, and mini-Debian systems
- The concept of runlevels
- Configuring runlevels
- Examples of runlevel management
- Default parameters for init scripts
- Managing the hostname
- Filesystem configuration at boot
- Initializing network interfaces
- Starting network services
- Interpreting system messages
- Interpreting kernel messages
- The udev subsystem
- Initializing kernel modules
Authentication and Security
- Standard Unix authentication methods
- Managing account and password data
- Creating strong passwords
- Generating encrypted passwords
- Understanding PAM and NSS
- Configuring files accessed by PAM and NSS
- Modern centralized system management approaches
- Why GNU su does not support the wheel group
- Enforcing stricter password policies
- Implementing additional access controls
- Configuring sudo
- Using SELinux and AppArmor
- Restricting access to specific server services
- Securing the authentication process
- Transmitting passwords securely over the internet
- Using Secure Shell (SSH)
- Additional security measures for internet exposure
- Protecting the root password
Network Configuration
Basic Network Infrastructure
- Understanding domain names
- Hostname resolution processes
- Naming network interfaces
- LAN network address ranges
- Network device driver support
Modern Desktop Network Configuration
- Using GUI-based network configuration tools
Low-Level Network Configuration
- Using Iproute2 commands
- Performing safe low-level network operations
Network Optimization
- Determining the optimal MTU
- Setting the MTU
- Optimizing TCP over WAN links
Netfilter Infrastructure
Network Applications
Mail System
- Fundamentals of modern mail services
- Mail configuration strategy for workstations
Mail Transport Agent (MTA) and Mail User Agent (MUA)
- Overview of exim4
- Basic usage of Mutt (MUA)
Mail Delivery Agent (MDA) with Filtering
- Configuring maildrop
- Configuring procmail
- Redelivering contents from mbox files
POP3/IMAP4 Servers
Remote Access Servers and Utilities (SSH)
- Fundamentals of SSH
- Using port forwarding for SMTP/POP3 tunneling
- Connecting without using remote passwords
- Interoperating with non-standard SSH clients
- Setting up ssh-agent
- Shutting down a remote system 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
- Configuring the X server
- Starting the X Window System
- Launching X sessions using gdm
- Customizing X sessions (traditional method)
- Customizing X sessions (modern method)
- Connecting remote X clients via SSH
- Securing X terminals over the internet
- Managing X applications
- Using X office suites
- Using X utility applications
System Tips
The Screen Program
- Use cases for screen(1)
- Key bindings for the screen command
Data Logging and Presentation
- Managing the log daemon
- Using log analyzers
- Cleanly recording shell activities
- Customizing text data display
- Customizing time and date display
- Colorizing shell output
- Colorizing command prompts
- Recording editor actions for complex repetitions
- Capturing graphic images of X applications
- Tracking changes in configuration files
Data Storage Tips
- Configuring disk partitions
- Accessing partitions using UUIDs
- Filesystem configuration
- Creating filesystems and checking integrity
- Optimizing filesystems via mount options
- Optimizing filesystems via superblock settings
- Hard disk performance optimization
- Predicting hard disk failures using SMART
- Expanding storage space with 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
- Automatically encrypting files with eCryptfs
- Auto-mounting eCryptfs volumes
Monitoring, Controlling, and Initiating Program Activities
- Measuring process execution time
- Managing scheduling priority
- Using the ps command
- Using the top command
- Listing files opened by a specific process
- Tracing program activities
- Identifying processes using specific files or sockets
- Repeating commands at constant intervals
- Looping command execution over multiple files
- Launching programs from the GUI
- Customizing programs to be started automatically
- Terminating processes
- Scheduling one-time tasks
- Scheduling recurring tasks
- Using the Alt-SysRq key
System Maintenance Tips
- Identifying logged-in users
- Sending system-wide warnings
- Identifying hardware components
- Configuring hardware
- Synchronizing system and hardware time
- Terminal configuration
- Sound infrastructure setup
- Disabling screen savers
- Disabling beep sounds
- Monitoring memory usage
- Performing system security and integrity checks
The Kernel
- Managing kernel parameters
- Using kernel headers
- Compiling the kernel and related modules
- Compiling kernel source: Debian standard method
- Compiling module source: Debian standard method
- Managing non-free hardware drivers
Virtualized Systems
- Virtualization tool suites
- Virtualization workflows
- Mounting virtual disk image files
- Using chroot systems
- Managing multiple desktop systems
Data Management
Sharing, Copying, and Archiving
- Archive and compression utilities
- Copy and synchronization tools
- Common idioms for archiving
- Common idioms for copying
- Common idioms for file selection
- Backup and recovery strategies
- Backup utility suites
- Example system backup script
- Data backup copy script
- Handling removable storage devices
- Sharing data over the network
- Managing archive media
Binary Data Handling
- Viewing and editing binary data
- Manipulating files without mounting disks
- Data redundancy techniques
- Data file recovery and forensic analysis
- Splitting large files into smaller segments
- Clearing file contents securely
- Working with dummy files
- Wiping an entire hard disk
- Erasing unused areas of a hard disk
- Undeleting deleted but still open files
- Finding all hard links
- Investigating invisible disk space consumption
Data Security Infrastructure
- GnuPG key management for signing and encryption
- Using MD5 checksums
Requirements
No prior specific requirements are necessary to participate in this course.