/linuxupskillchallenge

Learn the skills required to sysadmin a remote Linux server from the commandline.

Primary LanguageShellOtherNOASSERTION

Introduction to Linux Server Administration!

This includes all the source material for the 20 lessons of what was previously a commercial online Linux server admin course - now free for you to learn with! (If you spot any typos or "dead links" simply raise a GitHub "issue").

READ THIS FIRST!

HOW THIS WORKS & FAQ

Table of Contents

  • Day 0 - Creating Your Own Server: how to setup your lab in AWS, Azure, Digital Ocean, Google Cloud and others
  • Day 1 - Get to know your server: Starting with ssh-ing in and some simple commands like: ls, uptime, free, df -h, uname -a. Extensions on doing passwordless login with public keys and and an ssh config file.
  • Day 2 - Basic navigation: Basic navigation, the "man" pages, file hierarchy
  • Day 3 - Power trip!: Working with sudo, uptime, timezones, changing your hostname
  • Day 4 - Installing software, exploring the file structure: Using 'apt' to find and install sotware. Use of mc to explore the filesystem. Looking at the contents of: /etc/passwd, /etc/ssh/sshd_config and /var/log/auth.log
  • Day 5 - More or less...: Using more, less and navigating in these. Dotfiles, history, tab completion, and using the nano txt editor
  • Day 6 - Editing with "vim": Learning vim, the minimal knowledge, but also via vimtutor
  • Day 7 - The server and its services: Installing Apache2, stopping and starting, altering the content, reading logs
  • Day 8 - The infamous "grep" and other text processors: Hands-on with text tools like grep, cat, more, less, cut, awk and tail - and piping of course. (and a wave to awk and sed)
  • Day 9 - Diving into networking: Looking at open ports with with ss, and a nod to netstat, install nmap and test. Install ufw, set up, enable and test etc. Discuss security resonsibilities as the sysadmin.
  • Day 10 - Getting the computer to do your work for you: Covering cron, at, and systemd timers
  • Day 11 - Finding things...: Finding things with: locate, find, grep, which
  • Day 12 - Transfering files: SFTP, the technology, clients, and copying up and down
  • Day 13 - Who has permission?: Permissions, users, groups, (ACLS and SELinux in the Extension)
  • Day 14 - Users and Groups: Using adduser, visudo to setup up a restricted "helper" to manage our host
  • Day 15 - Deeper into repositories...: Repositories in more detail, how to enable "Multiverse", the role of PPAs in Ubuntu, enabling and installing from them
  • Day 16 - Archiving and compressing: Understanding and using tar and gzip
  • Day 17 - Build from the source: Installing from source. Discussion, using wget to get a tarball, tar to extract and then configure, make and install. Discussion of security, maintenance issues.
  • Day 18 - Log rotation: Log management and rotation, logrotate
  • Day 19 - Inodes, symlinks and other shortcuts: Inodes, hard links symlinks and stat
  • Day 20 - Scripting: Understanding how scripting work in Linux, the shebang, permissons and $PATH. A couple of simple sample scripts based on the filtering of logs we've been doing. Resources to explore further.
  • Day 21 - What's next?: Closing the course with some suggestions.

You are free to use this under the terms of the license, but copyright remains with the author, Steve Brorens.