Introduction |
|
xxv | |
|
Part 1 Basic Admin Functions |
|
|
1 | (188) |
|
Chapter 1 Understanding The Basics |
|
|
3 | (20) |
|
|
3 | (15) |
|
Looking into the Linux Kernel |
|
|
4 | (8) |
|
|
12 | (1) |
|
|
12 | (6) |
|
|
18 | (2) |
|
|
19 | (1) |
|
Specialized Linux Distributions |
|
|
19 | (1) |
|
|
20 | (3) |
|
Chapter 2 Installing An Ubuntu Server |
|
|
23 | (30) |
|
Pre-Installation Requirements |
|
|
23 | (3) |
|
|
24 | (1) |
|
Virtual Server Requirements |
|
|
25 | (1) |
|
|
26 | (3) |
|
|
26 | (1) |
|
|
26 | (3) |
|
|
29 | (20) |
|
|
29 | (4) |
|
|
33 | (16) |
|
Checking the Installation |
|
|
49 | (1) |
|
|
50 | (3) |
|
Chapter 3 Installing And Maintaining Software In Ubuntu |
|
|
53 | (16) |
|
Exploring Package Management |
|
|
53 | (1) |
|
Inspecting the Debian-Based Systems |
|
|
54 | (8) |
|
Managing Packages with apt |
|
|
54 | (2) |
|
Installing Software Packages with apt |
|
|
56 | (3) |
|
Upgrading Software with apt |
|
|
59 | (1) |
|
Uninstalling Software with apt |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (2) |
|
Installing from Source Code |
|
|
64 | (2) |
|
|
66 | (3) |
|
Chapter 4 Installing A Red Hat Server |
|
|
69 | (30) |
|
Pre-Installation Requirements |
|
|
69 | (3) |
|
|
70 | (1) |
|
Virtual Server Requirements |
|
|
71 | (1) |
|
|
72 | (4) |
|
|
72 | (1) |
|
|
73 | (3) |
|
|
76 | (20) |
|
|
77 | (1) |
|
|
77 | (19) |
|
Checking the Installation |
|
|
96 | (1) |
|
|
97 | (2) |
|
Chapter 5 Installing And Maintaining Software In Red Hat |
|
|
99 | (16) |
|
Exploring Red Hat Packages |
|
|
99 | (1) |
|
Automated Package Management |
|
|
100 | (7) |
|
Listing Installed Packages |
|
|
100 | (2) |
|
Installing Software with dnf |
|
|
102 | (2) |
|
Upgrading Software with dnf |
|
|
104 | (1) |
|
Uninstalling Software with dnf |
|
|
104 | (1) |
|
Handling Broken Dependencies |
|
|
105 | (1) |
|
Working with RPM Repositories |
|
|
106 | (1) |
|
Working Directly with Packages |
|
|
107 | (4) |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
109 | (1) |
|
|
110 | (1) |
|
|
111 | (2) |
|
|
113 | (2) |
|
Chapter 6 Working With The Shell |
|
|
115 | (20) |
|
|
115 | (6) |
|
|
116 | (1) |
|
|
117 | (4) |
|
|
121 | (8) |
|
|
121 | (2) |
|
|
123 | (2) |
|
|
125 | (4) |
|
|
129 | (4) |
|
Global Environment Variables |
|
|
129 | (2) |
|
User-Defined Environment Variables |
|
|
131 | (2) |
|
|
133 | (2) |
|
Chapter 7 Exploring Linux File Management |
|
|
135 | (30) |
|
|
135 | (4) |
|
|
135 | (3) |
|
|
138 | (1) |
|
|
139 | (3) |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
140 | (1) |
|
|
141 | (1) |
|
File and Directory Listing |
|
|
142 | (4) |
|
|
142 | (1) |
|
Modifying Listing Information |
|
|
143 | (1) |
|
The Complete Parameter List |
|
|
143 | (3) |
|
|
146 | (1) |
|
|
146 | (1) |
|
|
146 | (1) |
|
|
147 | (7) |
|
|
147 | (1) |
|
|
148 | (2) |
|
|
150 | (2) |
|
|
152 | (1) |
|
|
152 | (2) |
|
|
154 | (2) |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
156 | (1) |
|
|
156 | (3) |
|
|
156 | (1) |
|
|
156 | (1) |
|
|
157 | (1) |
|
|
157 | (2) |
|
|
159 | (4) |
|
|
159 | (1) |
|
|
160 | (1) |
|
|
161 | (2) |
|
|
163 | (2) |
|
Chapter 8 Working With Text Files |
|
|
165 | (24) |
|
|
165 | (5) |
|
Checking Your vim Editor Program |
|
|
166 | (1) |
|
|
167 | (3) |
|
|
170 | (2) |
|
|
172 | (15) |
|
|
172 | (3) |
|
|
175 | (6) |
|
|
181 | (1) |
|
|
182 | (5) |
|
|
187 | (2) |
|
Part 2 Intermediate Admin Functions |
|
|
189 | (174) |
|
Chapter 9 Managing Hardware |
|
|
191 | (20) |
|
|
191 | (5) |
|
Listing Installed Modules |
|
|
192 | (1) |
|
|
193 | (3) |
|
|
196 | (1) |
|
Communicating with Devices |
|
|
196 | (7) |
|
|
196 | (2) |
|
|
198 | (1) |
|
|
199 | (3) |
|
|
202 | (1) |
|
|
203 | (4) |
|
|
203 | (2) |
|
|
205 | (1) |
|
|
206 | (1) |
|
Using Hot Pluggable Devices |
|
|
207 | (2) |
|
Detecting Dynamic Devices |
|
|
208 | (1) |
|
Working with Dynamic Devices |
|
|
208 | (1) |
|
|
209 | (2) |
|
|
211 | (24) |
|
Understanding the Boot Process |
|
|
211 | (3) |
|
Overview of the Boot Process |
|
|
211 | (1) |
|
Watching the Boot Process |
|
|
212 | (1) |
|
|
212 | (2) |
|
|
214 | (1) |
|
Configuring the GRUB2 Bootloader |
|
|
215 | (4) |
|
Exploring the GRUB2 Configuration |
|
|
215 | (2) |
|
|
217 | (2) |
|
The systemd Initialization Process |
|
|
219 | (15) |
|
|
220 | (1) |
|
Focusing on Service Unit Files |
|
|
221 | (4) |
|
Focusing on Target Unit Files |
|
|
225 | (1) |
|
Changing a Unit Configuration File |
|
|
226 | (1) |
|
Changing the systemd Configuration File |
|
|
227 | (1) |
|
|
227 | (3) |
|
|
230 | (2) |
|
|
232 | (2) |
|
|
234 | (1) |
|
Chapter 11 Working With Storage Devices |
|
|
235 | (20) |
|
|
235 | (2) |
|
|
235 | (1) |
|
|
236 | (1) |
|
Automatic Drive Detection |
|
|
236 | (1) |
|
|
237 | (6) |
|
|
237 | (2) |
|
|
239 | (2) |
|
|
241 | (2) |
|
|
243 | (3) |
|
|
243 | (2) |
|
|
245 | (1) |
|
|
246 | (3) |
|
Manually Mounting Devices |
|
|
246 | (1) |
|
Automatically Mounting Devices |
|
|
247 | (2) |
|
|
249 | (2) |
|
Retrieving Filesystem Stats |
|
|
249 | (1) |
|
|
250 | (1) |
|
|
251 | (3) |
|
|
251 | (1) |
|
|
251 | (2) |
|
|
253 | (1) |
|
|
254 | (1) |
|
Chapter 12 Configuring Network Settings |
|
|
255 | (24) |
|
|
255 | (5) |
|
|
256 | (2) |
|
|
258 | (2) |
|
Using Network Command-Line Tools |
|
|
260 | (9) |
|
|
260 | (2) |
|
|
262 | (7) |
|
Basic Network Troubleshooting |
|
|
269 | (4) |
|
|
269 | (2) |
|
|
271 | (2) |
|
Advanced Network Troubleshooting |
|
|
273 | (4) |
|
|
273 | (3) |
|
|
276 | (1) |
|
|
277 | (2) |
|
Chapter 13 Managing Users And Groups |
|
|
279 | (30) |
|
Understanding Linux Permissions |
|
|
279 | (9) |
|
|
280 | (2) |
|
Controlling Access Permissions |
|
|
282 | (2) |
|
Exploring Special Permissions |
|
|
284 | (1) |
|
Managing Default Permissions |
|
|
285 | (3) |
|
Using Access Control Lists |
|
|
288 | (2) |
|
|
290 | (12) |
|
|
290 | (8) |
|
|
298 | (3) |
|
|
301 | (1) |
|
Maintaining the Environment |
|
|
302 | (2) |
|
Setting Environment Variables |
|
|
302 | (1) |
|
|
302 | (1) |
|
|
303 | (1) |
|
|
304 | (3) |
|
|
305 | (1) |
|
|
306 | (1) |
|
|
307 | (2) |
|
Chapter 14 Working With Processes And Jobs |
|
|
309 | (20) |
|
|
309 | (2) |
|
Monitoring Processes in Real Time |
|
|
311 | (3) |
|
|
314 | (3) |
|
|
314 | (1) |
|
|
315 | (2) |
|
Running Programs in Background Mode |
|
|
317 | (2) |
|
Running in the Background |
|
|
317 | (1) |
|
Running Multiple Background Jobs |
|
|
318 | (1) |
|
Running Programs Without a Console |
|
|
319 | (1) |
|
|
320 | (3) |
|
|
320 | (2) |
|
|
322 | (1) |
|
|
323 | (5) |
|
Scheduling a Job Using the at Command |
|
|
323 | (3) |
|
Scheduling Recurring Programs |
|
|
326 | (2) |
|
|
328 | (1) |
|
Chapter 15 Managing Log Files |
|
|
329 | (18) |
|
The systemd Journaling System |
|
|
329 | (9) |
|
Configuring systemd-journald |
|
|
330 | (1) |
|
|
331 | (1) |
|
Making the Journal Persistent |
|
|
332 | (1) |
|
|
332 | (3) |
|
|
335 | (2) |
|
Viewing Different Journal Files |
|
|
337 | (1) |
|
|
337 | (1) |
|
|
337 | (1) |
|
The rsyslog Legacy System |
|
|
338 | (6) |
|
|
338 | (2) |
|
Basic Logging Using rsyslogd |
|
|
340 | (2) |
|
|
342 | (1) |
|
|
343 | (1) |
|
|
344 | (1) |
|
|
344 | (3) |
|
Chapter 16 Managing Printers |
|
|
347 | (16) |
|
The Common Unix Printing System |
|
|
347 | (3) |
|
|
347 | (1) |
|
|
348 | (1) |
|
|
348 | (1) |
|
|
349 | (1) |
|
|
350 | (1) |
|
Installing and Configuring CUPS |
|
|
350 | (6) |
|
|
351 | (3) |
|
Preparing the Server to Use CUPS |
|
|
354 | (2) |
|
|
356 | (5) |
|
|
356 | (4) |
|
Managing Printers and Jobs in CUPS |
|
|
360 | (1) |
|
|
361 | (2) |
|
Part 3 Advanced Admin Functions |
|
|
363 | (142) |
|
Chapter 17 Exploring Ubuntu Security |
|
|
365 | (22) |
|
|
365 | (4) |
|
Looking at Linux Account Types |
|
|
366 | (1) |
|
Gaining Super User Privileges |
|
|
367 | (2) |
|
|
369 | (7) |
|
Exploring Basic SSH Concepts |
|
|
370 | (2) |
|
|
372 | (1) |
|
|
373 | (1) |
|
Authenticating with SSH Keys |
|
|
374 | (2) |
|
|
376 | (4) |
|
Network Security Using Firewalls |
|
|
380 | (5) |
|
|
380 | (1) |
|
|
381 | (4) |
|
|
385 | (2) |
|
Chapter 18 Exploring Red Hat Security |
|
|
387 | (16) |
|
|
387 | (4) |
|
Keeping Track of Root Logins |
|
|
388 | (1) |
|
Disabling Root Access from SSH |
|
|
388 | (1) |
|
Enabling Automatic Logout |
|
|
389 | (1) |
|
|
390 | (1) |
|
|
391 | (4) |
|
|
391 | (1) |
|
Understanding Security Context |
|
|
392 | (1) |
|
|
393 | (2) |
|
Network Security Using Firewalls |
|
|
395 | (6) |
|
Red Hat Firewall Concepts |
|
|
395 | (2) |
|
Checking the Firewall Status |
|
|
397 | (1) |
|
|
398 | (1) |
|
Working with Firewall Rules |
|
|
399 | (2) |
|
|
401 | (2) |
|
Chapter 19 Writing Scripts |
|
|
403 | (30) |
|
|
403 | (4) |
|
|
403 | (2) |
|
|
405 | (2) |
|
|
407 | (7) |
|
|
407 | (1) |
|
|
408 | (1) |
|
|
409 | (1) |
|
Exiting the Script with Status |
|
|
410 | (1) |
|
|
411 | (3) |
|
Adding Conditional Expressions |
|
|
414 | (6) |
|
Working with the if-then Statement |
|
|
414 | (3) |
|
|
417 | (1) |
|
Working with the if-then-else Statement |
|
|
418 | (1) |
|
Trying the case Statement |
|
|
419 | (1) |
|
|
420 | (7) |
|
Looking at the for Command |
|
|
420 | (3) |
|
Working with the while Format |
|
|
423 | (1) |
|
|
424 | (3) |
|
|
427 | (3) |
|
|
427 | (1) |
|
|
427 | (3) |
|
|
430 | (3) |
|
Chapter 20 Managing Web Servers |
|
|
433 | (20) |
|
|
433 | (2) |
|
|
433 | (1) |
|
|
434 | (1) |
|
|
435 | (13) |
|
Installing an Apache Server |
|
|
435 | (2) |
|
Configuring the Apache Server |
|
|
437 | (8) |
|
Hosting Dynamic Web Applications |
|
|
445 | (2) |
|
Creating a Secure Web Server |
|
|
447 | (1) |
|
|
448 | (3) |
|
|
448 | (1) |
|
|
449 | (2) |
|
|
451 | (2) |
|
Chapter 21 Managing Database Servers |
|
|
453 | (28) |
|
|
453 | (4) |
|
|
454 | (1) |
|
|
455 | (1) |
|
|
456 | (1) |
|
Installing and Using MySQL/MariaDB |
|
|
457 | (14) |
|
Conducting a MariaDB Installation |
|
|
458 | (4) |
|
Accessing a MariaDB Database |
|
|
462 | (4) |
|
Populating and Using MariaDB Database |
|
|
466 | (5) |
|
Installing and Using PostgreSQL |
|
|
471 | (7) |
|
Conducting a PostgreSQL Installation |
|
|
471 | (3) |
|
Accessing a PostgreSQL Database |
|
|
474 | (3) |
|
Populating and Using a PostgreSQL Database |
|
|
477 | (1) |
|
|
478 | (3) |
|
Chapter 22 Exploring The Visualization Environment |
|
|
481 | (24) |
|
|
481 | (5) |
|
|
481 | (2) |
|
Creating a Virtual Machine |
|
|
483 | (2) |
|
Integrating via Linux Extensions |
|
|
485 | (1) |
|
|
486 | (5) |
|
Exploring Container Types |
|
|
487 | (1) |
|
Looking at Container Software |
|
|
487 | (2) |
|
|
489 | (2) |
|
|
491 | (12) |
|
|
491 | (8) |
|
|
499 | (4) |
|
|
503 | (2) |
|
|
505 | (32) |
|
Chapter 1 Understanding the Basics |
|
|
505 | (1) |
|
Chapter 2 Installing an Ubuntu Server |
|
|
506 | (1) |
|
Chapter 3 Installing and Maintaining Software in Ubuntu |
|
|
507 | (2) |
|
Chapter 4 Installing a Red Hat Server |
|
|
509 | (1) |
|
Chapter 5 Installing and Maintaining Software in Red Hat |
|
|
510 | (2) |
|
Chapter 6 Working with the Shell |
|
|
512 | (1) |
|
Chapter 7 Exploring Linux File Management |
|
|
513 | (2) |
|
Chapter 8 Working with Text Files |
|
|
515 | (1) |
|
Chapter 9 Managing Hardware |
|
|
516 | (1) |
|
|
517 | (2) |
|
Chapter 11 Working with Storage Devices |
|
|
519 | (1) |
|
Chapter 12 Configuring Network Settings |
|
|
520 | (1) |
|
Chapter 13 Managing Users and Groups |
|
|
521 | (2) |
|
Chapter 14 Working with Processes and Jobs |
|
|
523 | (1) |
|
Chapter 15 Managing Log Files |
|
|
524 | (2) |
|
Chapter 16 Managing Printers |
|
|
526 | (1) |
|
Chapter 17 Exploring Ubuntu Security |
|
|
527 | (1) |
|
Chapter 18 Exploring Red Hat Security |
|
|
528 | (1) |
|
Chapter 19 Writing Scripts |
|
|
529 | (3) |
|
Chapter 20 Managing Web Servers |
|
|
532 | (1) |
|
Chapter 21 Managing Database Servers |
|
|
533 | (2) |
|
Chapter 22 Exploring the Virtualization Environment |
|
|
535 | (2) |
Index |
|
537 | |