Get in Touch

Course Outline

Debian Distribution

What is Debian?

  • Choosing the appropriate Debian version
  • Understanding Debian support and help resources
  • Engaging with the Debian community

Console fundamentals

  • Understanding the shell prompt
  • Managing the shell prompt in a graphical environment (X)
  • Utilizing the root account and root shell prompt (su, sudo, and running programs as root under X)
  • Overview of GUI system administration tools
  • Using virtual consoles
  • Exiting the command prompt correctly
  • Properly shutting down the system
  • Recovering a malfunctioning console
  • Recommended additional packages for newcomers
  • Setting up an extra user account
  • Configuring sudo

The filesystem

  • Understanding filesystem permissions
  • Controlling permissions for newly created files: umask
  • Managing permissions for user groups
  • Working with timestamps
  • Understanding file links
  • Using named pipes (FIFOs)
  • Understanding sockets
  • Device files
  • Special device files
  • Understanding procfs and sysfs

Midnight Commander (MC)

  • Customizing MC settings
  • Launching MC
  • Navigating the file manager within MC
  • Utilizing command-line tricks in MC
  • Using the internal editor in MC
  • Using the internal viewer in MC
  • Enabling auto-start features of MC
  • Accessing the FTP virtual filesystem in MC

The basic Unix-like work environment

  • Understanding the login shell
  • Customizing bash
  • Mastering special key strokes
  • Using the pager
  • Setting a default text editor
  • Exiting vim
  • Recording shell activities
  • Executing basic Unix commands

Simple shell commands

  • Command execution and environment variables
  • Understanding the "$LANG" variable
  • Understanding the "$PATH" variable
  • Understanding the "$HOME" variable
  • Using command line options
  • Shell globbing
  • Interpreting command return values
  • Utilizing typical command sequences and shell redirection
  • Creating command aliases

Unix-like text processing

  • Using Unix text tools
  • Working with regular expressions
  • Using replacement expressions
  • Performing global substitution with regular expressions
  • Extracting data from text file tables
  • Writing script snippets for piping commands

Debian package management

Debian package management prerequisites

  • Configuring packages
  • Implementing basic precautions
  • Managing life with constant upgrades
  • Understanding Debian archive basics
  • Understanding package dependencies
  • Understanding the event flow of package management
  • Providing initial responses to package management issues

Basic package management operations

  • Comparing apt-get/apt-cache vs. aptitude
  • Executing basic package management operations via the command line
  • Using aptitude interactively
  • Utilizing key bindings in aptitude
  • Navigating package views under aptitude
  • Using search method options with aptitude
  • Utilizing the aptitude regex formula
  • Resolving dependencies with aptitude
  • Reviewing package activity logs

Examples of aptitude operations

  • Listing packages using regex matching on package names
  • Browsing packages with regex matching
  • Completely purging removed packages
  • Organizing auto/manual install statuses
  • Performing a system-wide upgrade

Advanced package management operations

  • Executing advanced package management operations via the command line
  • Verifying installed package files
  • Safeguarding against package problems
  • Searching package metadata

Debian package management internals

  • Archive metadata
  • The top-level "Release" file and its authenticity
  • Archive-level "Release" files
  • Fetching metadata for packages
  • The package state for APT
  • The package state for aptitude
  • Local copies of fetched 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

Recovery from a broken system

  • Handling incompatibility with old user configurations
  • Managing different packages with overlapping files
  • Fixing broken package scripts
  • Rescuing the system with the dpkg command
  • Recovering package selection data

Tips for package management

  • How to select Debian packages
  • Handling packages from mixed archive sources
  • Tweaking candidate versions
  • Understanding updates and backports
  • Automating package download and upgrade processes
  • Limiting download bandwidth for APT
  • Performing emergency downgrades
  • Identifying who uploaded a package
  • Using the equivs package
  • Porting a package to a stable system
  • Configuring a proxy server for APT
  • Managing a small public package archive
  • Recording and copying system configuration
  • Converting or installing alien binary packages
  • Extracting packages without dpkg
  • Additional readings for package management

The system initialization

  • Overview of the boot strap process
  • Understanding BIOS, boot loaders, and the mini-Debian system
  • Understanding the meaning of runlevels
  • Configuring runlevels
  • Runlevel management examples
  • Default parameters for each init script
  • Configuring the hostname
  • Configuring the filesystem
  • Initializing network interfaces
  • Initializing network services
  • Managing system messages
  • Managing kernel messages
  • Understanding the udev system
  • Initializing kernel modules

Authentication and Security

  • Standard Unix authentication
  • Managing account and password information
  • Creating strong passwords
  • Creating encrypted passwords
  • Understanding PAM and NSS
  • Configuration files accessed by PAM and NSS
  • Modern centralized system management
  • Understanding "Why GNU su does not support the wheel group"
  • Implementing stricter password rules
  • Exploring other access controls
  • Using sudo
  • Implementing SELinux and Apparmor
  • Restricting access to specific server services
  • Ensuring authentication security
  • Securing passwords over the Internet
  • Implementing Secure Shell
  • Implementing extra security measures for the Internet
  • Securing the root password

Network setup

The basic network infrastructure

  • Configuring the domain name
  • Configuring hostname resolution
  • Configuring network interface names
  • Configuring the network address range for the LAN
  • Configuring 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

  • Finding the optimal MTU
  • Setting the MTU
  • Optimizing WAN TCP

Netfilter infrastructure

Network applications

The mail system

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

Mail transport agent (MTA) and Mail user agent (MUA)

  • Overview of exim4
  • Basic MUA: Mutt

Mail delivery agent (MDA) with filters

  • Configuring maildrop
  • Configuring procmail
  • Redelivering mbox contents

POP3/IMAP4 server

The remote access server and utility (SSH)

  • SSH basics
  • Setting up port forwarding for SMTP/POP3 tunneling
  • Connecting without remote passwords
  • Managing incompatible SSH clients
  • Setting up ssh-agent
  • Shutting down the remote system via SSH
  • Troubleshooting SSH

Other network application servers

Other network application clients

Diagnosing system daemons

The X Window System

  • Setting up the desktop environment
  • Understanding the server/client relationship
  • The X server
  • Starting the X Window System
  • Starting an X session with gdm
  • Customizing the X session (classic method)
  • Customizing the X session (new method)
  • Connecting a remote X client via SSH
  • Securing the X terminal via the Internet
  • X applications
  • X office applications
  • X utility applications

System tips

The screen program

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

Data recording and presentation

  • Configuring the log daemon
  • Using log analyzers
  • Cleanly recording shell activities
  • Customizing text data display
  • Customizing time and date display
  • Using colorized shell echo
  • Using colorized commands
  • Recording editor activities for complex repetitions
  • Recording the graphic image of an X application
  • Recording changes in configuration files

Data storage tips

  • Disk partition configuration
  • Accessing partitions using UUID
  • Filesystem configuration
  • Creating filesystems and performing integrity checks
  • Optimizing filesystems via mount options
  • Optimizing filesystems via superblock
  • Optimizing hard disks
  • Using SMART to predict hard disk failure
  • Expanding usable storage space via LVM
  • Expanding usable storage space by mounting another partition
  • Expanding usable storage space using symbolic links
  • Expanding usable storage space using aufs

Data encryption tips

  • Encrypting removable disks with dm-crypt/LUKS
  • Encrypting swap partitions with dm-crypt
  • Automatically encrypting files with eCryptfs
  • Automounting eCryptfs

Monitoring, controlling, and starting program activities

  • Timing a process
  • 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 a command at a constant interval
  • Repeating a command while looping over files
  • Starting a program from the GUI
  • Customizing programs to be started
  • Killing a process
  • Scheduling one-time tasks
  • Scheduling recurring tasks
  • Using the Alt-SysRq key

System maintenance tips

  • Identifying who is on the system
  • Warning all users
  • Hardware identification
  • Hardware configuration
  • Managing system and hardware time
  • Terminal configuration
  • Sound infrastructure
  • Disabling the screen saver
  • Disabling beep sounds
  • Monitoring memory usage
  • Performing system security and integrity checks

The kernel

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

Virtualized systems

  • Virtualization tools
  • Virtualization workflow
  • 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
  • Idioms for archiving
  • Idioms for copying
  • Idioms for file selection
  • Backup and recovery
  • Backup utility suites
  • Example script for system backup
  • Copy script for data backup
  • Removable storage devices
  • Sharing data via the network
  • Archive media

Binary data

  • Viewing and editing binary data
  • Manipulating files without mounting the disk
  • Data redundancy
  • Data file recovery and forensic analysis
  • Splitting large files into smaller ones
  • Clearing file contents
  • Creating dummy files
  • Erasing an entire hard disk
  • Erasing unused areas of a hard disk
  • Undeleting files that are deleted but still open
  • Searching for all hard links
  • Identifying invisible disk space consumption

Data security infrastructure

  • Key management for GnuPG (signing and encrypting)
  • Using the MD5 sum
 35 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories