LPIC-1: System Administrator – Exam 102 (v5 Objectives)
Senior Vice President of Content
NOTE: This course is for EXAM 102-500, which will replace the 400 series in early 2019!
About This Course
This video provides an introduction to the course and the topics we will cover. We'll discuss who this course is designed for, the necessary course prerequisites, and how the LPIC 102-500 exam is organized.
About the Author
Before you get started on the course, get to know your instructor!
Important Information about LPI Exam Discount Vouchers for 2019
Please view the following video for important information regarding LPI exam vouchers for 2019.
How to Use the Linux Academy Cloud Playground for this Course
This video provides an initial walkthrough on how to access and use Linux Academy's new Cloud Playground. The new service has replaced our now deprecated "Cloud Servers" platform. It is important to note that some videos in this course may use/refer to the old "Cloud Servers" platform, so here are a few important notes to remember and use: _ 1) If you see the instructor using (and/or telling you to use) login credentials such as "user" or "linuxacademy" AND the password "123456" - they will no longer work. Use the specific credentials provided to you (for the server you are using) in the new Cloud Playground user interface._ 2) You cannot log into the Cloud Playground servers as the root user. However, you can access the root shell by using the command `sudo -i`. _ **NOTE:** In this course, you may see the instructor running commands as the root user. In order to follow along with those commands, you must run the `sudo -i` command first. Otherwise, you will get a permissions error. _ 3) To access the servers GUI (if you provisioned a distribution that has one), you need to select "Actions" then "Graphical Shell" for your server in the Cloud Playground. _ **NOTE:** You cannot access the GUI via VNC Viewer as port 5901 is blocked. ____ Detailed documentation on the new Cloud Playground can be found here: https://support.linuxacademy.com/hc/en-us/articles/360019096651-Cloud-Playground-FAQ
105.1 Customize and Use the Shell Environment
Setting Up the Shell Environment
This lesson discusses the differences between the interactive login shell and the interactive non-login shell. We will look at the configuration files that make up these two environments and the order in which they are loaded. Knowing the differences between these two types of shell environments is important for Linux system administrators and anyone using automated deployment tools.For more details on Bash Startup Files, see: http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html
Customizing the Shell Environment
This lesson reviews some of the Bash modification commands from the LPIC-1 Exam 101 course, such as `env`, `set`, `unset`, and `export`. We will also introduce some new commands that you will need to know for the exam, such as `alias` and `function`. We will also discuss the importance of the `PATH` environment variable. You'll learn how to make your own commands and have them available when you start a new shell.
105.2 Customize or Write Simple Scripts
Basic Shell Scripts
This lesson is an introduction to the structure of a Bash shell script. We will go over how to create a script and run it from any directory on your system. We will also discuss using arguments in your shell scripts to make them more flexible.
Adding Logic to Your Shell Scripts
This lesson focuses on how to use if/else/elif statements for logical command executions in scripts. We will explore some of the different ways to set up an if statement and test for different conditions. Understanding how the if test works in Bash will not only help you on the exams, but also broaden the capabilities of your Bash scripts.
Bash Loops and Sequences
We'll wrap up this section on Bash scripting by introducing loops, sequences, and command substitution. We'll discuss the `for`, `while`, and `until` loops and how they differ from each other. We will also talk about some of the commands that we can use to troubleshoot scripts. Finally, we will work with the `exit` and `exec` commands, which can provide extra information for sections of our scripts.
106.1 Install and Configure X11
The Basics of X11
This lesson introduces you to the basics of the X11 server and how it is used in Linux systems. We will also take a quick look at Wayland, which is the future replacement for the X Window System.
In this lesson, we'll perform a basic X11 installation on an older CentOS 5 system to get a feel for the components that make up the X Window System. We will look at the various ways to start the desktop environment. We will also discuss the importance of the display manager. Please use this link to download an image of Centos 5: https://s3.amazonaws.com/linuxacademy-lab-files/LPIC-1+Exam+102+System+Administrator/CentOS+5+Image/CentOS-5.vdi The root password is available in the Download section of the course.
This lesson will introduce you to the `xorg.conf` configuration file. We will look at the various components that make up this file, and we will see how modern distributions handle X11 configurations. We will also learn how to create a new X11 configuration and query our X server for display information.
Remote Graphical Connections
This lesson focuses on how to use the network-aware capabilities of the X server to view application windows on a remote system. We will discuss the security implications of this type of configuration and the techniques used to secure it. We will also discuss using VNC to control a full desktop environment remotely, as well as introduce the newer SPICE protocol.
106.2 Graphical Desktops
The Primary Linux Desktop Environments
In this lesson, we'll take a whirlwind tour of some of the most popular Linux desktop environments. We will discuss some of their differences and what they all have in common. We'll talk about the GNOME desktop (which we've seen in this course before) as well as introduce you to the KDE and XFCE desktops.
Assistive Technologies on the Linux Desktop
In this lesson, we will discuss the assistive technologies that are available in the Linux desktop, such as the high-contrast and large text size settings designed to help visually impaired users. We will also look at keyboard and mouse pointer modifications, as well as a few other features designed to assist users with special needs.
107.1 Manage User and Group Accounts and Related System Files
Adding and Removing Users
This lesson focuses on how to create new users on Linux systems and modify some of their environment settings at the same time. We will discuss how to set passwords and temporary passwords for new users. We will also look at how to remove a user from a Linux installation.
Adding and Removing Groups
Now that we've learned how to add and remove individual users, we'll take a look at adding and removing groups. Group management is an important method of organizing users and what they have access to. We will discuss how to add and remove groups from a system as well as how to view group membership.
User and Group Configuration Files
Now that we know how to create accounts, let's take a look at where account information is stored. We will look at the flat database files that contains this information: `/etc/passwd`, `/etc/shadow`, and `/etc/group`. We will also look at some configuration files that help us create new user accounts, and we will use the `getent` utility to query for user or group information.
User and Group Modifications
We'll finish this section on working with local user and group accounts by modifying accounts that are on the system. We will look at modifying users, groups, and user passwords with the `usermod`, `groupmod`, and `chage` commands.
Creating Users and Groups and Managing User Accounts
107.2 Automate System Administration Tasks by Scheduling Jobs
Ready to get your computer to perform tasks for you automatically on a schedule of your choosing? This lesson looks at `cron` jobs, which are tasks that we can configure ahead of time and have them repeat for us on a set schedule. We will discuss where these jobs are stored and take a look at the system's scheduled jobs. We will also learn how to prevent users from utilizing `crontabs` if your local policy does not allow them.
In this lesson, we will take a look at the `at` command and the utilities that we can use to manage it. While the `cron` daemon is used to schedule jobs and tasks that we want repeated on our system, we use the `at` command to schedule jobs that will take place at a later time and will run only once. Just as we did with the `cron` daemon, we will also look at how to control access to the `at` queue.
Systemd Timer Unit Files
In this lesson, we will take a look at the newest entry in managing timed job execution: the systemd timer unit. You may want to brush up on your systemd knowledge from the LPIC-101 Exam 101 course if you need to, as this topic will delve into what goes into the systemd timer unit files. We will discuss how these files are created and what differentiates them from `at` or `cron` jobs.
107.3 Localization and Internationalization
Working with the System's Locale
Understanding what a system's locale settings are for and how to change them is an important skill for any Linux system administrator that works with international associates. This lesson will show you how to view a locale's settings and make changes to them according to where the system will be used.
Time and Date on the Linux System
Now that we have an understanding of a system's locale, we need to configure the time, date, and time zone settings. This lesson focuses on this part of internationalization and how we can view current settings while making permanent changes to these same settings. As Linux is used worldwide, this is another valuable component of a system administrator's skill set.
108.1 Maintain System Time
Working with Remote Time Servers
Now that we understand local system time, we need to learn how to connect our systems to upstream time servers. With the Network Time Protocol (NTP), we can receive accurate updates for the current time. This lesson will show you how to use the classic `ntpd` daemon and the modern `chronyd` daemon to synchronize your system's clocks with upstream time servers.
108.2 System Logging
Legacy Logging Systems
This lesson discusses the basics of the `rsyslog` daemon and the types of logs that it is responsible for. We will explore the various methods of viewing these logs and the components of their structure. We will also learn about the `logger` command and how we can use it in our scripts to send messages to the system's default log.
After our discussion of the legacy `rsyslog` daemon, we now take a look at how the service is configured. We also explore how to send logs from one server to be stored on another server. After we set this up, we then demonstrate how to modify our log retention through the `logrotate` daemon and its configuration files.
Introduction to the systemd Journal
In this lesson, we will learn about the systemd journal. We'll take a look at the configuration file that dictates the behavior of the systemd journal, and we will discuss how to make the journal permanent on our systems. Once we understand the basics of the journal and how it operates, we can start using it to manage logs.
We'll wrap up this section on Linux system logging by using the `journalctl` command to view the systemd journal. Since most modern Linux distributions use systemd, it is important to understand how the systemd journal works and how to parse its information with `journalctl`. We will also look at the methods for making the journal permanent on our system and the different commands that we can use to query the journal.
108.3 Mail Transfer Agent (MTA) Basics
Basics of a Message Transfer Agent
In this lesson, we introduce the concept of the Message Transfer Agent (MTA). The MTA is the component of an email system that routes email to its destination. For the LPIC-1 exam, you do not need to know how to install or configure an MTA; you just need to be aware of some common MTAs and their purpose.
Email Forwarding and Aliases
In this lesson, we'll learn how to set up local email forwarding to send email bound for one user to another. We accomplish this with the `/etc/aliases` file and the `newaliases` command. We'll also discuss how to view the email queue and how to use our own local `.forward` file to forward email messages without the need for root privileges.
108.4 Manage Printers and Printing
The Common Unix Printing System (CUPS)
In this lesson, we will take a look at the Common Unix Printing System (CUPS) and learn how we can add and remove printers through the CUPS web interface. We will also see how to use the log files from the web interface and explore the configuration files that makes up a CUPS installation.
The Line Print Daemon
This lesson focuses on how to print from the command line using the legacy `lpd` (Line Print Daemon) tool. We’ll discuss how to manage print jobs and print documents with various options from the command line. The ability to print files from the command line is useful when you need hard copy reports for system audits. On the LPIC-1 exam, you will be expected to know how to manage printers and print jobs from the command line.
109.1 Fundamentals of Internet Protocols
This lesson will introduce you to the protocols responsible for sending data across networks. We will discuss TCP, UDP, and ICMP. In addition, we will explore the different classes of IP addresses. It is recommended that you review the _Basic Networking_ lesson in the LPI Linux Essentials course prior to viewing this lesson.Correction: RFC 1918 covers private IP ranges
Common Networking Services
This is a short lesson that lists the common networking services that you need to memorize for the LPIC-1 exam. Download the slide deck from the _Downloads_ section of this course and make sure to memorize the entire list prior to taking the exam.
109.2 Persistent Network Configuration
NetworkManager is the de facto toolset for administering networking connections on modern Linux distributions. In this lesson, we will discuss the `nmcli` command line utility for NetworkManager and learn how to add and remove connections. We will also explore the versatile `ip` command and modify our system's hostname with the `hostnamectl` command.
Legacy Networking Tools
Now we will take a look at the legacy networking tools that come with the `net-tools` package. These include the `ifconfig`, `ifup`, `ifdown`, and `route` commands. We will learn how to use these commands to view our network connections and modify them.
109.3 Basic Network Troubleshooting
This lesson focuses on the `ping`, `traceroute`, and `tracepath` commands for verifying our system's connectivity. We will learn about the differences between each command and how to utilize them for both IPv4 and IPv6 connections. We will also use the older `netstat` command and newer `ss` command to view the network ports that our systems are using.
109.4 Configure Client-Side DNS
The Basics of DNS Resolution from Linux
DNS is an important aspect of working with systems on a network. We use DNS to translate system hostnames to IP addresses so that our computers know how to communicate with each other. In this lesson, we'll learn about the configuration files that we use in Linux for DNS and hostname resolution, such as `/etc/hosts`, `/etc/resolv.conf`, `/etc/hostname`, and `/etc/nsswitch.conf`. We will also look at how to query DNS and our local systems to resolve a hostname to an IP address using command line tools such as `dig`, `host`, and `getent`.
110.1 Perform Security Administration Tasks
Determine the Current Security State of a System
In this lesson, we will learn about some of the basic commands that you can use to perform a local security audit on a host. We'll discuss how to use the `lsof`, `w`, `who`, `last`, and `find` commands to set up basic system security. We will also look into how to give a user elevated privileges with the `sudo` command.
Checking Local Network Security
In this lesson, we'll take another look at the `lsof`, `netstat`, and `ss` commands to view our active network ports. We will also discuss how to use the `fuser` and `nmap` commands to check the status of running network services. These commands are helpful for monitoring your system's network security.
110.2 Set Up Host Security
Securing Local Logins
This lesson will review permission information for the main account configuration files. We will also learn how to completely lock down a user's account with the `usermod` command and the `nologin` binary.
Securing Network Services
In this lesson, we'll take a look at some techniques that we can use to help secure our network services. We will discuss using the older `xinetd` super-server, as well as the modern `systemd.socket` unit type. We will also look into how we can add an extra layer of security with TCP wrappers.
110.3 Securing Data with Encryption
In this lesson, we will learn how to encrypt and decrypt files using GPG. We'll go over how to create public keys to send to other users so that they can unlock the files you send them. We will also discuss entropy and random number generation.
The secure shell is one of the most important tools for a Linux system administrator. In this lesson, we'll learn about the various files that you need to know about with the secure shell, as well as how to initiate different types of connections. We will go over an example of key-based authentication and discuss how to open up a remote graphical window from another system on your local computer.
Congratulations, you made it to the end! This video explains how to register for the LPIC-1 Exam 102-500 test and provides some extra tips to help you study. Good luck on the exam, and I look forward to working with you again in your next course!
LPIC-1 Exam 102 Practice Exam
Take this course and learn a new skill today.
Transform your learning with our all access plan.Start 7-Day Free Trial