Introduction

My blog had a series of Laboratories that were ment to assist my students on learning Linux. Those Laboratories were based on the Laboratories delivered by the Linux Foundation for their LFS201 Essentials of System Administration. This course is a payed and self paced course from LF. I took this course twice, once in 2016, but did not take the certification back then, and the second time now, starting from November 2017 till November 2018. This time, I plan on taking the certification, but I am not yet convinced if it would be on CentOS 7 or Debian administration, thus I am laying down my preparation habits and training labs that I designed based on the List of Competencies.


My distribution of choice

I chose to use CentOS as my base distribution, as LF is only offering two options now: CentOS and Ubuntu. As I don’t really like Ubuntu, I would choose Debian instead - Ubuntu is based on Debian. The advantage of Debian over CentOS is that it uses newer packages for specific Development tasks such as PHP or Python or Ruby, but for a strictly administrative level, they are virtually on the same level. Both are extremely stable and offer good support from the community. If you would like, you can use Ubuntu for your preparation, but bare in mind that some of the packages have different names in CentOS, Debian or Ubuntu. Also, some tasks presented in CentOS will not be the same for Ubuntu - for example, I will focus on SELinux on CentOS but for Ubuntu you will have to learn how to use AppArmor. Another aspect is that CentOS uses RPM related commands for package management and Ubuntu is using DEB specific commands. Debian is using DEB for package management, but it doesn’t come with AppArmor preinstalled, therefore you will have to install it and configure it yourself. Those would be the major issues.

I am more in favour of CentOS as I am planning on getting the RHCSA Certification later this year or probably the next one. But Debian is always a good choice, and as I will go through the competences list, I will solve some of them for CentOS as well as for Debian too. Especially the ones where the approach is totally different.


My training support

My training support for LFCS is mainly based on video courses from Udemy and Packt, and also electronic books from Tecmint. All of those are payed resources, but you could find free tutorials on YouTube too, or even free ebooks from the internet.

Therefore, here is a list of the video courses that I took.

From Packt Publishing:

  • Fundamentals of Unix and Linux System Administration (using CentOS)
  • Beginning CentOS7 Administration
  • Fundamentals of Linux (using CentOS)
  • Linux Networking Solutions - Part 1 and 2

From Udemy:

  • Linux Administration Bootcamp: Go from Beginner to Expert (using CentOS 7)
  • Linux Academy Red Hat Certified Systems Administrator Prep course
  • Linux Academy Red Hat Certified Engineer Prep course

Ebooks from Tecmint:

  • Introducing the Linux Foundation’s LFCS and LFCE Certification Preparation Guide
  • Guide to Red Hat RHCSA/RHCE Certification Preparation Guide

Other books/ebooks:

  • How Linux Works. What every SuperUser should know, by Brian Ward
  • The Linux Command Line. A complete Introduction, by William E. Shotts Jr.
  • A Practical Guide to Linux Commands, Editors, and Shell Programming 3rd Edition, by Mark G. Sobell
  • RHCSA & RHCE Red Hat Enterprise Linux 7: Training and Exam Preparation Guide 3rd edition, by Asghar Ghori
  • The Debian Administrator’s Handbook, by Raphael Hertzog and Roland Mas
  • Linux Pocket Guide 3rd edition, by Daniel J. Barrett
  • Essential System Administration Pocket Reference, by Aeleen Frisch


The most important thing to remember while preparing for LFCS is to practice a LOT. And I really mean A LOT! Do this until you find yourself confortable enough to use the CLI over the GUI at any time. Take time, each day, to do some exercises and to solve some system administration specific tasks that will help you be “proficient” in using the Command Line.


List of Competencies

Below you have the extended List of Competencies from the Linux Foundation. Those listed here are only available until April 10th. Starting from that date, they will change them, and I will come back and update this post accordingly as soon as I receive their e-mail with the new ones.

Short list:

  • Essential Commands - 25%
  • Operation of Running Systems - 20%
  • User and Group Management - 15%
  • Networking - 15%
  • Service Configuration - 10%
  • Storage Management - 10%
  • Virtualization - 5%

Based on the following extended list, I will show you how to solve each of the required tasks, based on my knowledge of system administration. Even though I paid for my training support, I will not charge you anything for my knowledge and help.

The Extended List of Competences:

  • Essential Commands - 25%

    • Log into graphical and text mode consoles
    • Search for files
    • Evaluate and compare the basic file system features and options
    • Compare, create and edit text files
    • Compare binary files
    • Use input-output redirection
    • Analyze text using basic regular expressions
    • Archive, backup, compress, unpack, and uncompress files
    • Create, delete, copy, and move files and directories
    • Create hard and soft links
    • List, set, and change standard file permissions
    • Read, and use system documentation
    • Manage access to the root account


  • Operation of Running Systems - 20%

    • Boot, reboot, and shut down a system safely
    • Boot systems into different runlevels manually
    • Install, configure and troubleshoot the bootloader
    • Change the priority of a process
    • Identify resource utilization by process
    • Locate and analyze system log files
    • Schedule tasks to run at a set date and time
    • Verify completion of scheduled jobs
    • Update software to provide required functionality and security
    • Verify the integrity and availability of resources
    • Verify the integrity and availability of key processes
    • Change kernel runtime parameters, persistent and non-persistent
    • Use scripting to automate system maintenance tasks
    • Manage the startup process and services
    • List and identify SELinux/AppArmor file and process contexts
    • Configure and modify SELinux/AppArmor policies
    • Install software from source


  • User and Group Management - 15%

    • Create, delete, and modify local user accounts
    • Create, delete, and modify local groups and group memberships
    • Manage system-wide environment profiles
    • Manage template user environment
    • Configure user resource limits
    • Manage user processes
    • Configure PAM


  • Networking - 15%

    • Configure networking and hostname resolution statically or dynamically
    • Configure network services to start automatically at boot
    • Implement packet filtering
    • Configure firewall settings
    • Start, stop, and check the status of network services
    • Statically route IP traffic
    • Dynamically route IP traffic
    • Synchronize time using other network peers


  • Service Configuration - 10%

    • Configure a basic DNS server
    • Maintain a DNS zone
    • Configure an FTP server
    • Configure anonymous-only download on FTP servers
    • Provide/configure network shares via NFS
    • Provide/configure network shares via CIFS
    • Configure email aliases
    • Configure SSH servers and clients
    • Configure SSH-based remote access using public/private key pairs
    • Restrict access to the HTTP proxy server
    • Configure an IMAP and IMAPS service
    • Query and modify the behavior of system services at various run levels
    • Configure an HTTP server
    • Configure HTTP server log files
    • Restrict access to a web page
    • Diagnose routine SELinux/AppArmor policy violations
    • Configure database server


  • Storage Management - 10%

    • List, create, delete, and modify storage partitions
    • Create, modify and delete Logical Volumes
    • Extend existing Logical Volumes and filesystems
    • Create and configure encrypted partitions
    • Configure systems to mount file systems at or during boot
    • Configure and manage swap space
    • Add new partitions, and logical volumes
    • Assemble partitions as RAID devices
    • Configure systems to mount standard, encrypted, and network file systems on demand
    • Create and manage filesystem Access Control Lists (ACLs)
    • Diagnose and correct file permission problems
    • Setup user and group disk quotas for filesystems


  • Virtualization - 5%

    • Configure a hypervisor to host virtual guests
    • Access a VM console
    • Configure systems to launch virtual machines at boot
    • Evaluate memory usage of virtual machines
    • Resize RAM or storage of VMs


Preparation

Now, it is time to start your training for certification. I strongly advice you to use CentOS or Debian as your system. If you don’t want to install it on bare metal, you could run it inside a Virtual Machine. But, bare in mind that, when you will have to do the Virtualization tasks, you will not be able to create a virtual machine inside a virtual machine. It is just not possible.


All you have to do is to start from the beginning, taking all the competences and transform them into tasks or exercises. This way, you will have a complete image of how complex and difficult the LFCS certification is. As it is a performance based exam, you will need to start and practice all the needed commands for the specified tasks. And don’t do this only once. Do this several times until you become familiar with all the commands. You will need to memorize some of the options and command patterns, as you go along, because when you are inside the exam, you will not have acces to Google search, only to the internal man pages of Linux. Therefore, when you don’t remember something, feel free to use the man pages to find help.


Now, lets get started!