Acknowledgments |
|
xxi | |
Introduction |
|
xxiii | |
Objective Map: Exam XK0-004 |
|
xxxii | |
Chapter 1 An Introduction to Linux and a Pre-Assessment Exam |
|
1 | (46) |
|
|
1 | (3) |
|
|
1 | (1) |
|
|
1 | (1) |
|
Compatible Time-Sharing System |
|
|
2 | (1) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
Linux Operating System Structure |
|
|
4 | (2) |
|
|
5 | (1) |
|
Operating System Software |
|
|
5 | (1) |
|
|
5 | (1) |
|
|
6 | (2) |
|
|
6 | (1) |
|
|
7 | (1) |
|
Common Linux Implementations |
|
|
8 | (3) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
Linux and Cloud Computing |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
12 | (18) |
|
|
30 | (1) |
|
In-Depth Answer Explanations |
|
|
31 | (14) |
|
|
45 | (2) |
Chapter 2 Using the vi Text Editor |
|
47 | (18) |
|
The Role and Function of the vi Text Editor |
|
|
47 | (1) |
|
|
48 | (9) |
|
|
48 | (2) |
|
|
50 | (1) |
|
|
51 | (2) |
|
Working in Command-Line Mode |
|
|
53 | (3) |
|
Exercise 2-1: Using the vi Editor |
|
|
56 | (1) |
|
Editing Text Files in nano |
|
|
57 | (1) |
|
|
57 | (1) |
|
|
57 | (1) |
|
|
58 | (2) |
|
|
60 | (3) |
|
|
63 | (2) |
Chapter 3 Working with the Linux Shell |
|
65 | (32) |
|
|
65 | (1) |
|
|
66 | (3) |
|
|
66 | (1) |
|
|
66 | (2) |
|
|
68 | (1) |
|
Setting Up the Local Environment (Locale) |
|
|
69 | (3) |
|
|
70 | (1) |
|
|
70 | (1) |
|
|
70 | (1) |
|
|
70 | (2) |
|
|
72 | (5) |
|
|
73 | (1) |
|
/etc/timezone and /usr/share/zoneinfo |
|
|
73 | (2) |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
77 | (5) |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
78 | (1) |
|
|
79 | (1) |
|
|
79 | (1) |
|
|
79 | (1) |
|
Exercise 3-1: Working with Variables, Parameters, and Aliases |
|
|
80 | (2) |
|
|
82 | (7) |
|
|
83 | (1) |
|
|
83 | (1) |
|
|
84 | (1) |
|
|
84 | (1) |
|
|
85 | (1) |
|
|
86 | (1) |
|
Combining stdout and stderr |
|
|
86 | (1) |
|
|
87 | (1) |
|
Exercise 3-2: Redirection |
|
|
87 | (2) |
|
|
89 | (1) |
|
|
89 | (4) |
|
|
93 | (4) |
Chapter 4 Managing Linux Users and Groups |
|
97 | (28) |
|
Understanding Linux Users and Groups |
|
|
97 | (8) |
|
|
97 | (6) |
|
Real and Effective User and Group IDs |
|
|
103 | (2) |
|
Creating and Managing User Accounts from the Command Line |
|
|
105 | (12) |
|
|
105 | (7) |
|
Exercise 4-1: Managing User Accounts from the Command Line |
|
|
112 | (2) |
|
|
114 | (2) |
|
Exercise 4-2: Managing Groups from the Command Line |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
118 | (4) |
|
|
122 | (3) |
Chapter 5 Managing Linux Files and Directories |
|
125 | (42) |
|
Understanding Filesystem Hierarchy Standard (FHS) |
|
|
125 | (6) |
|
Navigating the Filesystem |
|
|
128 | (1) |
|
Viewing Directory Contents |
|
|
129 | (1) |
|
Exercise 5-1: Navigating the Filesystem |
|
|
130 | (1) |
|
|
131 | (12) |
|
|
131 | (1) |
|
Types of Files Used by Linux |
|
|
132 | (1) |
|
|
133 | (1) |
|
|
133 | (4) |
|
|
137 | (1) |
|
Determining the File Content |
|
|
138 | (1) |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
140 | (1) |
|
Exercise 5-2: Managing Files and Directories |
|
|
141 | (2) |
|
Finding Files in the Linux Filesystem |
|
|
143 | (5) |
|
|
143 | (2) |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (1) |
|
Understanding Commands and Precedence |
|
|
148 | (5) |
|
|
148 | (1) |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
150 | (2) |
|
Exercise 5-3: Finding Files |
|
|
152 | (1) |
|
Finding Content within Files |
|
|
153 | (4) |
|
|
153 | (2) |
|
|
155 | (1) |
|
|
155 | (2) |
|
|
157 | (1) |
|
|
157 | (3) |
|
|
160 | (3) |
|
|
163 | (4) |
Chapter 6 Managing Ownership and Permissions |
|
167 | (20) |
|
|
167 | (3) |
|
Managing Ownership from the Command Line |
|
|
168 | (1) |
|
Exercise 6-1: Managing Ownership |
|
|
169 | (1) |
|
Managing File and Directory Permissions |
|
|
170 | (10) |
|
|
170 | (3) |
|
Managing Permissions from the Command Line |
|
|
173 | (2) |
|
Exercise 6-2: Managing Permissions |
|
|
175 | (1) |
|
Working with Default Permissions |
|
|
176 | (2) |
|
Working with Special Permissions |
|
|
178 | (1) |
|
Exercise 6-3: Managing Default and Special Permissions |
|
|
179 | (1) |
|
File Attributes and Access Control Lists |
|
|
180 | (1) |
|
File Access Control Lists |
|
|
181 | (1) |
|
|
181 | (2) |
|
|
183 | (1) |
|
|
184 | (3) |
Chapter 7 Managing Linux Filesystems |
|
187 | (46) |
|
|
187 | (12) |
|
|
187 | (1) |
|
|
188 | (3) |
|
Device Naming Conventions |
|
|
191 | (1) |
|
|
192 | (4) |
|
|
196 | (3) |
|
|
199 | (10) |
|
|
199 | (2) |
|
|
201 | (4) |
|
|
205 | (1) |
|
|
206 | (2) |
|
|
208 | (1) |
|
|
209 | (18) |
|
|
209 | (1) |
|
|
210 | (4) |
|
|
214 | (2) |
|
|
216 | (2) |
|
|
218 | (1) |
|
Maintaining Linux Filesystems |
|
|
218 | (4) |
|
|
222 | (1) |
|
|
222 | (1) |
|
|
222 | (1) |
|
|
223 | (1) |
|
Exercise 7-1: Managing Linux Partitions |
|
|
224 | (3) |
|
|
227 | (1) |
|
|
228 | (3) |
|
|
231 | (2) |
Chapter 8 Configuring Volume Management |
|
233 | (24) |
|
Implementing Logical Volume Management |
|
|
233 | (5) |
|
|
234 | (1) |
|
|
235 | (2) |
|
|
237 | (1) |
|
Creating Archives and Performing Compression |
|
|
238 | (7) |
|
Selecting a Backup Medium |
|
|
239 | (1) |
|
Selecting a Backup Strategy |
|
|
239 | (1) |
|
Linux Backup and Compression Utilities |
|
|
240 | (4) |
|
Exercise 8-1: Backing Up Data |
|
|
244 | (1) |
|
|
245 | (8) |
|
Software RAID Configuration |
|
|
247 | (1) |
|
|
248 | (1) |
|
Exercise 8-2: RAID and Logical Volumes |
|
|
248 | (5) |
|
|
253 | (1) |
|
|
254 | (2) |
|
|
256 | (1) |
Chapter 9 Managing Linux Processes |
|
257 | (38) |
|
Understanding Linux Processes |
|
|
257 | (6) |
|
User Versus System Processes |
|
|
258 | (2) |
|
How Linux Processes Are Loaded |
|
|
260 | (3) |
|
|
263 | (17) |
|
Starting System Processes |
|
|
263 | (2) |
|
Viewing Running Processes |
|
|
265 | (6) |
|
|
271 | (2) |
|
Managing Foreground and Background Processes |
|
|
273 | (2) |
|
|
275 | (2) |
|
Keeping a Process Running After Logout |
|
|
277 | (1) |
|
Exercise 9-1: Working with Linux Processes |
|
|
277 | (3) |
|
|
280 | (8) |
|
|
280 | (2) |
|
|
282 | (3) |
|
Exercise 9-2: Scheduling Linux Processes |
|
|
285 | (2) |
|
Using the anacron Service |
|
|
287 | (1) |
|
|
288 | (2) |
|
|
290 | (3) |
|
|
293 | (2) |
Chapter 10 Managing Linux Software |
|
295 | (38) |
|
What Is a Package Manager? |
|
|
295 | (1) |
|
Red Hat Package Manager (RPM) |
|
|
296 | (7) |
|
|
296 | (1) |
|
|
297 | (1) |
|
Installing an RPM Package |
|
|
298 | (1) |
|
|
298 | (1) |
|
Removing (Erasing) an RPM Package |
|
|
299 | (1) |
|
|
299 | (2) |
|
Querying the RPM Database |
|
|
301 | (1) |
|
|
301 | (1) |
|
|
302 | (1) |
|
|
303 | (6) |
|
|
304 | (1) |
|
|
305 | (1) |
|
|
306 | (1) |
|
|
307 | (2) |
|
|
309 | (1) |
|
|
309 | (1) |
|
|
310 | (2) |
|
Installing, Updating, and Removing Packages |
|
|
310 | (1) |
|
Working with Repositories |
|
|
311 | (1) |
|
Debian Package Management |
|
|
312 | (5) |
|
|
312 | (1) |
|
Installing Packages with dpkg |
|
|
312 | (1) |
|
Viewing Package Information with apt-cache |
|
|
312 | (2) |
|
Installing Packages with apt-get |
|
|
314 | (1) |
|
|
314 | (3) |
|
Installing Packages from a Source |
|
|
317 | (4) |
|
Preparing the Installation Files |
|
|
317 | (2) |
|
|
319 | (1) |
|
Installing the Executable |
|
|
319 | (1) |
|
Exercise 10-3: Building Software from Source Code |
|
|
320 | (1) |
|
Uninstalling Software Compiled from Source Code |
|
|
320 | (1) |
|
Managing Shared Libraries |
|
|
321 | (3) |
|
How Shared Libraries Work |
|
|
321 | (2) |
|
|
323 | (1) |
|
|
324 | (2) |
|
|
326 | (4) |
|
|
330 | (3) |
Chapter 11 Managing the Linux Boot Process |
|
333 | (30) |
|
|
333 | (4) |
|
|
334 | (2) |
|
|
336 | (1) |
|
|
337 | (1) |
|
|
337 | (1) |
|
|
337 | (9) |
|
|
337 | (6) |
|
|
343 | (2) |
|
Exercise 11-1: Working with GRUB2 |
|
|
345 | (1) |
|
|
346 | (1) |
|
|
346 | (5) |
|
|
346 | (1) |
|
|
347 | (1) |
|
|
348 | (1) |
|
|
349 | (1) |
|
|
349 | (1) |
|
|
350 | (1) |
|
|
351 | (4) |
|
|
351 | (3) |
|
|
354 | (1) |
|
|
354 | (1) |
|
|
355 | (1) |
|
|
356 | (2) |
|
|
358 | (4) |
|
|
362 | (1) |
Chapter 12 Managing Hardware Under Linux |
|
363 | (50) |
|
|
363 | (13) |
|
|
363 | (1) |
|
|
364 | (2) |
|
|
366 | (3) |
|
|
369 | (1) |
|
|
370 | (6) |
|
Configuring Hardware Devices |
|
|
376 | (8) |
|
|
376 | (5) |
|
|
381 | (2) |
|
Exercise 12-1: Discovering Devices |
|
|
383 | (1) |
|
|
384 | (1) |
|
|
384 | (1) |
|
|
384 | (1) |
|
|
385 | (2) |
|
Scanning for Network Devices |
|
|
385 | (1) |
|
Configuring a Wi-Fi Network |
|
|
386 | (1) |
|
Configuring Storage Devices |
|
|
387 | (7) |
|
|
387 | (1) |
|
|
387 | (1) |
|
|
388 | (1) |
|
|
389 | (1) |
|
|
389 | (1) |
|
|
389 | (3) |
|
|
392 | (1) |
|
|
393 | (1) |
|
|
393 | (1) |
|
|
394 | (1) |
|
|
394 | (1) |
|
|
394 | (7) |
|
|
397 | (1) |
|
Managing Printers and Print Queues |
|
|
397 | (1) |
|
|
398 | (1) |
|
|
399 | (1) |
|
Removing a Printer or Printer Class |
|
|
399 | (1) |
|
|
400 | (1) |
|
Using Facility Priority with dmesg |
|
|
401 | (1) |
|
|
402 | (2) |
|
|
403 | (1) |
|
|
404 | (3) |
|
|
407 | (3) |
|
|
410 | (3) |
Chapter 13 Writing Shell Scripts |
|
413 | (38) |
|
Understanding Shell Script Components |
|
|
413 | (5) |
|
|
413 | (1) |
|
|
413 | (1) |
|
|
413 | (1) |
|
|
414 | (1) |
|
|
415 | (1) |
|
|
416 | (1) |
|
|
417 | (1) |
|
|
418 | (1) |
|
|
418 | (8) |
|
|
418 | (3) |
|
|
421 | (2) |
|
|
423 | (2) |
|
Exercise 13-1: Creating a Basic Shell Script |
|
|
425 | (1) |
|
|
426 | (17) |
|
|
426 | (1) |
|
|
427 | (1) |
|
|
428 | (1) |
|
|
429 | (1) |
|
|
429 | (1) |
|
|
430 | (2) |
|
|
432 | (1) |
|
|
433 | (1) |
|
|
433 | (4) |
|
|
437 | (3) |
|
|
440 | (1) |
|
|
441 | (1) |
|
|
441 | (1) |
|
|
441 | (1) |
|
|
441 | (1) |
|
|
442 | (1) |
|
Exercise 13-2: Processing Text Streams |
|
|
442 | (1) |
|
|
443 | (2) |
|
|
445 | (3) |
|
|
448 | (3) |
Chapter 14 Managing Linux Network Settings |
|
451 | (38) |
|
Understanding IP Networks |
|
|
452 | (9) |
|
|
452 | (4) |
|
|
456 | (2) |
|
How IPv4 Subnet Masks Work |
|
|
458 | (3) |
|
Configuring Network Addressing Parameters |
|
|
461 | (11) |
|
Assigning NIC Nomenclature |
|
|
461 | (1) |
|
Configuring IPv4 Parameters |
|
|
461 | (5) |
|
Exercise 14-1: Working with Network Interfaces |
|
|
466 | (1) |
|
Configuring Routing Parameters |
|
|
467 | (2) |
|
Configuring Name Resolver Settings |
|
|
469 | (2) |
|
|
471 | (1) |
|
Troubleshooting Network Problems |
|
|
472 | (8) |
|
Using a Standardized Troubleshooting Model |
|
|
472 | (2) |
|
|
474 | (1) |
|
|
475 | (1) |
|
|
476 | (2) |
|
|
478 | (1) |
|
Using Name Resolution Tools |
|
|
478 | (2) |
|
Exercise 14-2: Working with Network Commands |
|
|
480 | (1) |
|
Understanding Network-based Filesystems |
|
|
480 | (2) |
|
Network File System (NFS) |
|
|
481 | (1) |
|
|
481 | (1) |
|
|
482 | (2) |
|
|
484 | (2) |
|
|
486 | (3) |
Chapter 15 Understanding Network Security |
|
489 | (44) |
|
Understanding How Encryption Works |
|
|
489 | (3) |
|
|
490 | (1) |
|
|
491 | (1) |
|
Integrity Checking via Hashing |
|
|
491 | (1) |
|
Implementing Secured Tunnel Networks |
|
|
492 | (11) |
|
|
493 | (1) |
|
|
494 | (2) |
|
Exercise 15-1: Working with SSH |
|
|
496 | (2) |
|
Logging In to SSH Without a Password |
|
|
498 | (2) |
|
Exercise 15-2: Configuring Public Key Authentication |
|
|
500 | (1) |
|
|
501 | (2) |
|
Configuring High-Availability Networking |
|
|
503 | (2) |
|
|
504 | (1) |
|
|
505 | (1) |
|
Understanding Single Sign-On |
|
|
505 | (3) |
|
|
506 | (1) |
|
|
507 | (1) |
|
|
507 | (1) |
|
|
508 | (1) |
|
Defending Against Network Attacks |
|
|
508 | (12) |
|
Mitigating Network Vulnerabilities |
|
|
508 | (3) |
|
Implementing a Firewall with firewalld |
|
|
511 | (4) |
|
Exercise 15-3: Implementing Network |
|
|
|
Security Measures with firewalld |
|
|
515 | (1) |
|
Implementing a Firewall with iptables |
|
|
516 | (2) |
|
Exercise 15-4: Implementing Network |
|
|
|
Security Measures with iptables |
|
|
518 | (2) |
|
Encrypting Files with GPG |
|
|
520 | (8) |
|
|
520 | (1) |
|
Using GPG to Encrypt Files |
|
|
521 | (5) |
|
Exercise 15-5: Using GPG to Encrypt Files |
|
|
526 | (2) |
|
|
528 | (2) |
|
|
530 | (1) |
|
|
531 | (2) |
Chapter 16 Securing Linux |
|
533 | (44) |
|
|
533 | (3) |
|
Securing the Physical Environment |
|
|
533 | (1) |
|
Securing Access to the Operating System |
|
|
534 | (2) |
|
|
536 | (14) |
|
|
536 | (3) |
|
Implementing a Strong Password Policy |
|
|
539 | (3) |
|
Locking Accounts After Failed Authentications |
|
|
542 | (1) |
|
|
543 | (2) |
|
|
545 | (2) |
|
Security Auditing Using find |
|
|
547 | (2) |
|
Exercise 16-1: Managing User Access |
|
|
549 | (1) |
|
|
550 | (12) |
|
|
550 | (7) |
|
Using Log Files to Troubleshoot Problems |
|
|
557 | (3) |
|
Using Log Files to Detect Intruders |
|
|
560 | (2) |
|
Enhancing Group and File Security |
|
|
562 | (7) |
|
|
562 | (5) |
|
|
567 | (1) |
|
Exercise 16-2: Managing SELinux Contexts |
|
|
568 | (1) |
|
|
569 | (3) |
|
|
572 | (3) |
|
|
575 | (2) |
Chapter 17 Applying DevOps: Automation and Orchestration |
|
577 | (14) |
|
|
577 | (2) |
|
|
579 | (1) |
|
The Git Revision Control System |
|
|
580 | (7) |
|
|
580 | (3) |
|
|
583 | (3) |
|
Exercise 17-1: Working with a Git Repository |
|
|
586 | (1) |
|
|
587 | (1) |
|
|
588 | (1) |
|
|
589 | (2) |
Chapter 18 Understanding Cloud and Virtualization |
|
591 | (12) |
|
Understanding Virtualization |
|
|
591 | (3) |
|
|
591 | (2) |
|
Thin vs. Thick Provisioning |
|
|
593 | (1) |
|
Virtualization File Formats |
|
|
593 | (1) |
|
|
593 | (1) |
|
|
594 | (2) |
|
|
594 | (1) |
|
|
594 | (1) |
|
Container Markup Languages |
|
|
595 | (1) |
|
|
595 | (1) |
|
|
596 | (1) |
|
|
596 | (1) |
|
|
596 | (1) |
|
|
596 | (1) |
|
|
596 | (1) |
|
|
596 | (1) |
|
|
597 | (1) |
|
|
597 | (1) |
|
|
598 | (1) |
|
|
599 | (2) |
|
|
601 | (2) |
Chapter 19 Troubleshooting and Diagnostics |
|
603 | (26) |
|
A Standardized Troubleshooting Model |
|
|
603 | (1) |
|
Troubleshooting Computer Problems |
|
|
604 | (13) |
|
Verify Hardware Configuration |
|
|
604 | (2) |
|
|
606 | (1) |
|
Verify Memory Performance |
|
|
607 | (3) |
|
Exercise 19-1: Working with Swap Space |
|
|
610 | (1) |
|
Validate Storage Performance |
|
|
610 | (3) |
|
|
613 | (4) |
|
Troubleshooting Network Problems |
|
|
617 | (8) |
|
Verify Network Performance |
|
|
618 | (4) |
|
Validate User Connections |
|
|
622 | (1) |
|
|
623 | (1) |
|
Exercise 19-2: Troubleshooting Networking Issues |
|
|
624 | (1) |
|
|
625 | (1) |
|
|
626 | (2) |
|
|
628 | (1) |
Chapter 20 Installing and Configuring Linux |
|
629 | (36) |
|
Designing a Linux Installation |
|
|
630 | (10) |
|
Linux Installers and the Lima+ Exam |
|
|
630 | (1) |
|
Conducting a Needs Assessment |
|
|
630 | (1) |
|
|
631 | (1) |
|
Checking Hardware Compatibility |
|
|
632 | (1) |
|
Verifying System Requirements |
|
|
633 | (1) |
|
|
633 | (2) |
|
Selecting Software Packages |
|
|
635 | (1) |
|
Identifying User Accounts |
|
|
636 | (1) |
|
Gathering Network Information |
|
|
636 | (1) |
|
Selecting an Installation Source |
|
|
636 | (4) |
|
|
640 | (3) |
|
Exercise 20-1: Installing a Linux System |
|
|
640 | (3) |
|
Configuring the X Environment |
|
|
643 | (6) |
|
|
643 | (3) |
|
Configuring the Display Manager |
|
|
646 | (1) |
|
Configuring Accessibility |
|
|
647 | (2) |
|
Configuring Locale Settings |
|
|
649 | (1) |
|
Configuring Time Zone Settings |
|
|
650 | (1) |
|
Configuring Printing with CUPS |
|
|
651 | (3) |
|
|
651 | (3) |
|
|
654 | (2) |
|
Configuring SQL Databases |
|
|
656 | (1) |
|
|
657 | (5) |
|
|
662 | (3) |
Appendix About the Online Content |
|
665 | (4) |
|
|
665 | (1) |
|
Your Total Seminars Training Hub Account |
|
|
665 | (1) |
|
|
665 | (1) |
|
Single User License Terms and Conditions |
|
|
665 | (2) |
|
|
667 | (1) |
|
|
667 | (1) |
|
|
667 | (1) |
|
|
668 | (1) |
|
|
668 | (1) |
|
|
668 | (1) |
Index |
|
669 | |