Chapter 1, Pg 14, Exercise 1-1, Step 13: Allocate 40GB to the root partition (instead of 10GB). This will ensure you have enough room available to accommodate server1 and server2 in Chapter 6.

Chapter 2, Pg 27: Use user2 (instead of user1) in the first two examples of the ssh command.

Chapter 2, Pg 53, Lab 2-8: Use " :r <path>/.bash_profile " to import the contents of the .bash_profile file while in vi.

Chapter 3, Pg 78, Exercise 3-2, Step 2: Should say: Add the write permission for the owner, group, and others, and verify".

Chapter 3, Pg 81, Exercise 3-3, Step 2: Should say "Change into the home directory of user1 ......".

Chapter 3, Pg 82/83: The chmod commands at the bottom of page 82 and beginning of page 83 have a / missing from /usr/bin/su.

Chapter 3, Pg 85, Exercise 3-4, Step 5a (after step 5 and before step 6): You need to add write permission to the group and revoke both read and execute from the public. Run:

          # chmod g+w,o-rx /sdata

Chapter 4, Pg 103 under Enclosing within Double Quotes: The back quote is another special character that double quotes do not mask. Try the following:

           # echo "`hostname`"

Chapter 4, Pg 110 under Renicing a Running Process: The PID in the command and the output should be 9191 (and not 1919).

Chapter 4, Pg 114, Exercise 4-1, Step 1: Use >& symbols to redirect both output and error to the specified file.

Chapter 4, Pg 117, Exercise 4-2, Step 1: Use only the > symbol to redirect only the output to the specified file.

Chapter 4, Pg 118: Question 14 should be read as "What are the two commands that we can use to kill a process?"

Chapter 4, Pg 119: Answer to Question 23 is False.

Chapter 5, Pg 145: The yum command is yum -y install ypbind.

Chapter 5, Pg 152, the second paragraph under Adding and Removing Packages references Figure 5-4 (and not Figure 5-8).

Chapter 5, Pg 154, Question 3 and its answer. Use the word freshening (and not freshing).

Chapter 5, Pg 155, Lab 5-1: Ignore this lab.

Chapter 5, Pg 155, Answer to Question 13 should be " . . . . . . will display the package name the specified file belongs to".

Chapter 5, Pg 156, Lab 5-3: The reference in this lab is for Lab 5-2 (and not 6-2).

Chapter 6: In order for the exercises in this chapter to work without issues, ensure the following:

a. Use the MAC address of your computer in the interface configuration file and not the one presented in the book.
b. Your physical system is physically connected to your home router and the router is powered up.
c. If your network interface is other than em1 or eth0, ensure that the interface file name reflects it. For instance, it would be ifcfg-enp1s0 for interface enp1s0.
d. Specify the correct device name (em1, eth0, enp1s0, eno16677354, etc) with the DEVICE directive in the interface configuration file.
e. Your physical system and the router are on the same subnet.

Chapter 6, Pg 183, Line 20: Specify 8930 as the size of the root logical volume (instead of 9230).

Chapter 7, Pg 199, the yum command at the bottom of the page is: yum list installed kernel*.

Chapter 7, Pg 205, Exercise 7-2, Step 4: The command is: cat /boot/grub2/grub.cfg.

Chapter 7, Pg 212, the second systemctl command example should be: "systemctl -t socket --all".

Chapter 7, Pg 220 the first paragraph under "Switching into Specific Targets": The reference is for Table 7-4 (and not Table 7-2).

Chapter 7, Pg 229 under "Understanding the Journal" topic, the journal logs are stored temporarily under /var/run/log/journal (or /run/log/journal) directory.

Chapter 7, Pg 232, Answer to Question 5 is grub.cfg file.

Chapter 7, Pg 233, Answer to Question 16 is "The -U option would instruct the rpm command to upgrade the specified package or install it if it is not already installed. The -i option, on the other hand, would instruct the command to install the package and fail if the package already exists."

Chapter 8, Pg 248, Exercise 8-2, Step 1: The gid should be 1010 (and not 1001). Do not specify -g 1010 in the command as this private group will be created automatically.

Chapter 8, Pg 252, the command in the third example under Switching Users should be:   $ su - user3 (and not user1).

Chapter 8, Pg 254, the third line from the top should not contain the % before PKGADM. It should be read as:  PKGADM   ALL=PKGCMD

Chapter 8, Pg 256, Exercise 8-7, Step 2: You need to run the gpasswd command separately on user2new and user3 accounts, so gpasswd -a user2new linuxadm and gpasswd -a user3 linuxadm.

Chapter 9, Pg 277, Exercise 9-4: You will need to run the w command within gdisk to write the updated partition table information to the disk before running q to quit this utility.

Chapter 9, Pg 280, fourth paragraph under Logical Volume should be read as "Currently, there are three logical volumes on server1 that were created during the installation. Run the . . . . . . . "

Chapter 10, Pg 312, Exercise 10-3, Step 6: You need to grep on mntxfs.

Chapter 10, Pg 314, Exercise 10-4, Step 6: You need to grep on mntvfat.

Chapter 10, Pg 321, Exercise 10-7, Step 7: The shutdown command should be executed without the -y switch.

Chapter 10, Pg 323, Exercise 10-8, Step 11: The shutdown command should be executed without the -y switch.

Chapter 10, Pg 326, Exercise 10-9, Step 2: The command should be mkdir /autodir.

Chapter 10, Pg 331-333, Exercises 10-11 and 10-12: Use vdc2 partition (instead of vdb2).

Chapter 11, Pg 345: The yum command at the bottom of the page should have firewall (and not firewalld).

Chapter 11, Pg 348 just before The iptables Command topic: it should be systemctl status iptables -l and not systemctl status firewalld -l.

Chapter 11, Pg 351, Exercise 11-2, Step 3: This rule should be inserted to the OUTPUT chain (and not to the INPUT chain).

Chapter 11, Pg 352 just before The firewall-cmd Command topic: the path should be /usr/lib/firewalld/services/ssh.xml and not /usr/lib/systemd/services/ssh.xml.

Chapter 11, Pg 354, Exercise 11-3, Step 6: You should not see 443/tcp in the output of firewall-cmd --list-ports, as this rule was added as a runtime rule in step 4 but deleted when firewall-cmd --reload is executed in step 5. If you wish to view the presence of this rule, run firewall-cmd --list-ports after step 4 and before step 5.

Chapter 11, Pg 355, Exercise 11-4, Step 2: The list-ports option with the firewall-cmd command has two dash characters.

Chapter 11, Pg 365: The second semanage command (middle of the page) uses the -l option (and not --l).

Chapter 11, Pg 370, Exercise 11-6, Step 5: The SELinux user should be modified to user_u (and not staff_u).

Chapter 12, Pg 403 under Relative Distinguished Name: (See Figure 12-6) should be (See Figure 12-7).

Chapter 15, Pg 461, Exercise 15-3, Step 6: It should read "Generate UUIDs for both new interfaces using the uuidgen command:"

Chapter 15, Pg 463, Exercise 15-4, Step 1: You need to open virtual console for server2 on host1.

Chapter 17, Pg 507, Exercise 17-4. The exercise description references Table 17-5 (and not 16-4).

Chapter 19, Pg 541, Exercise 19-1, Step 11: The demo_mode is used for testing purposes only; it is not recommended for use in live environments.

Chapter 19, Pg 547, Exercise 19-2, Step 10: Unmount the /iscsidisk1 file system before rebooting the initiator in step 10 for the first time only after the initiator configuration to prevent a system hang. It should automatically remount after the reboot. This manual unmount will not be required before subsequent reboots.

Chapter 19, Pg 553, Exercise 19-3, Step 22: Unmount the /iscsifile1 file system before rebooting the initiator in step 22 for the first time only after the initiator configuration to prevent a system hang. It should automatically remount after the reboot from the fstab file. This manual unmount will not be required before subsequent reboots.

Chapter 20, Pg 562, Exercise 20-1, Step 2: Run chmod +w /common to ensure this directory is writable.

Chapter 20, Pg 567, Exercise 20-3, Step 4: The step description should say nfssdatagrp and not sdatagrp.

Chapter 21, Pg 583 under SELinux Requirements for Samba Operation: Execute systemctl start smbd before running the ps command to view SELinux context on the smbd process. This is only required if smbd is not already running.

Chapter 22, Pg 614, Exercise 22-5, Step 1: You also need to set the Listen directive in the beginning of the httpd.conf file to listen on port 8989. Define it as Listen 8989.

Chapter 23, Pg 630, under Common Terms, the term "Mail Submission Agent" should be abbreviated as MSA.

Chapter 25, Pg 676, Table 25-1: The name of the third package is mariadb-libs and not Mariadb-libs.

Chapter 25, Pg 683, Second Paragraph: ....... semicolon (;) at the end.

I forgot to mention the website in the bibliography of my book. I regularly checked this website when writing my book. In addition, there are hundreds of other useful websites, other than the ones I had listed in the bibliography of the book, that I had visited in order to get a general sense about what others think and how they do things to provide my readers with more refined information.

Google Book Search