Course Details
A 3-day course, 6 hours per day (18 hours in total), delivered as lectures with hands-on labs on real Linux machines for every topic. Beginner to Intermediate level, no Linux background required. Learners take home a lab guide, a command cheat sheet, sample shell scripts and a new-server setup checklist. The institute provides a lab machine for each learner.
Day 1: Linux Fundamentals and File Management
Section 1: Introduction to Linux and Server Installation
- An overview of Linux, the kernel, popular distributions (Ubuntu, Debian, RHEL, Rocky) and choosing one for the enterprise
- Installing a Linux server and performing initial setup
- Accessing the system via console and SSH and using the terminal
- Lab: install and log in to a Linux server for the first time
Section 2: Core Commands and the Filesystem Hierarchy
- The filesystem hierarchy (/etc, /var, /home, /opt, /usr) and the purpose of each directory
- Frequently used commands: ls, cd, pwd, cp, mv, rm, mkdir, find, locate, plus man and help
- Viewing and editing files with cat, less, head, tail and editors (nano, basic vim)
- Lab: navigate the filesystem and manage files with core commands
Section 3: File Permissions and Ownership
- Reading rwx and octal permissions and the meaning of user, group and other
- Changing permissions and ownership with chmod, chown, chgrp and using umask
- Special permissions (SUID, SGID, sticky bit) and safe permission practices
- Lab: set permissions for a directory shared by multiple users
Section 4: User and Group Management
- Creating and managing users and groups with useradd, usermod, groupadd and the /etc/passwd and /etc/shadow files
- Setting passwords, password policy and locking or disabling accounts
- Privilege escalation with sudo and configuring sudoers under least privilege
- Lab: create team user accounts with restricted sudo rights
Day 2: Packages, Services, Disks and Networking
Section 5: Package and Software Management
- Installing and removing software with APT (Ubuntu/Debian) and DNF (RHEL/Rocky)
- Searching packages, updating the system and managing repositories
- Installing from source and an introduction to Snap and containers
- Lab: install and update the software a server needs
Section 6: Processes and Service Management with systemd
- Viewing processes with ps, top and htop and managing them with kill and nice
- systemd concepts: units, services, targets and using systemctl (start, stop, enable, status)
- Reading failed service status and basic troubleshooting
- Lab: install a service, enable it at boot and fix it when it fails to start
Section 7: Disks, Partitions and Filesystems
- Inspecting disks with lsblk, df and du and planning storage
- Creating partitions, formatting filesystems (ext4, xfs) and mounting temporarily and permanently via /etc/fstab
- An introduction to LVM and extending storage
- Lab: add a new disk, create a partition and mount it permanently
Section 8: Networking on Linux
- Configuring IP, gateway and DNS and verifying with ip, ping, ss, curl and dig
- Setting the hostname and working with /etc/hosts and resolv.conf
- Opening and closing ports with a firewall (ufw and firewalld) and checking listening ports
- Lab: configure networking and the firewall so the server is usable and secure
Day 3: Security, Logs and Automation
Section 9: SSH and Server Security
- Securing SSH: key-based login, disabling root login, changing the port and restricting users
- Using scp and rsync for copying and backing up data
- Basic hardening practices and applying security patches
- Lab: set up SSH keys and harden a server against a checklist
Section 10: Logs and System Monitoring
- Reading logs with journalctl and the log files under /var/log
- Monitoring system resources (CPU, memory, disk, network) and diagnosing a slow machine
- Log rotation with logrotate and planning log retention
- Lab: analyze a problem from the logs and find the cause of a failed service
Section 11: Shell Scripting and Automation
- Bash scripting basics: variables, conditionals, loops and reading input
- Writing scripts for routine work such as backups, health checks and alerts
- Scheduling automated jobs with cron and systemd timers
- Lab: write a backup script and schedule it to run daily
Section 12: Real-world Server Operations and Next Steps
- Setting up a new server end to end (server checklist)
- Backup and restore approaches and planning long-term maintenance
- Moving on to Docker, Kubernetes and cloud (AWS, Azure) which all build on Linux
- Workshop: build a new server end to end against a given requirement