Errata

Essential System Administration

Errata for Essential System Administration

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page xiii
tip

http://perso.wanadoo.fr/levenez/unix/
has moved to
http://www.levenez.com/unix/

Anonymous   
Printed Page 4
2nd paragraph

As printed, the sample command is:

# kill -9 `ps aux | awk '$1=="chavez" {print $2}'

Executing this command yields an error message that refers to an unmatched quote.

Add a matching grave to the end of the command:

# kill -9 `ps aux | awk '$1=="chavez" {print $2}'`

Executing this command kills the processes.

Assuming command substitution is valid in this context, is the second version
correct? Am I missing something just a bit too subtle or advanced for a newbie?

Anonymous   
Printed Page 11
example at the top of the page

I think there is still a mistake in the example for /etc/sudoers (section user
specifications).

In order for a user to be able to sudo all the executables of a directory, this
directory must be written with a '/' at the end.

The last line of the example becomes thus :

BACKUPOPS ALL , !CHEM = BACKUP , /usr/local/bin/

(perhaps this varies depending on the version of sudo).

Anonymous   
Printed Page 31
Paragraph that precedes the sentence "Here is an example command..."

The sentence "By default, searches are not case sensitive, but you can use -g to make them so." is incorrect.

I don't know that plod has a default search mode. Also, the "-g" option makes the search case-INsensitive.

Anonymous   
Printed Page 31
Paragraph that precedes the sentence "Here is an example command..."

The sentence "By default, searches are not case sensitive, but you can use -g to make them so." is incorrect.

I don't know that plod has a default search mode. Also, the "-g" option makes the search case-INsensitive.

Anonymous  May 19, 2008 
Printed, PDF Page 31
last paragraph

The sentence reads "We will look at a script which can read and summarize plod data in
Chapter 14" but there isn't anything about plod in Chapter 14. I would really like to see that script!

Anonymous  Oct 19, 2019 
Printed Page 76
3nd Paragraph

Setting up man -k

page shows Solaris command as:

#makewhat /usr/share/man Solaris

Should be

#makewhatis /usr/share/man <-- this works on Solaris 8

Anonymous   
Printed Page 161
last line on page 161

the "-" between "run" and "level" is missing, the correct output from "who -r" should be:
. run-level 2 Mar 14 11:14 2 0 S
this way, $8 = "0", and $9 = "S"

Anonymous   
Printed Page 183
Second line

The top item is not an RG-11 coax connector, it's an AUI connector, I think ... not
directly related to coax cabling.

Anonymous   
Printed Page 196
bottom paragraph

In the bottom paragraph on p.196, the book states: "For example, for the network
address 192.168.0.0, you could use only 4 bits for the subnet part rather than the
usual 8, yielding 16 subnets of up to 1022 hosts each." Have you have mistated the
number of hosts in this example? If you have 16 subnets, shouldn't you have 4094
hosts on each subnet, because you have 12 bits available for hosts?
See generally www.murchison.net/techno/tcpip/super-chart.html. Your answer of 1022 is
based on 10 bits, which is not given in the example.

Anonymous   
Printed Page 203
4th paragraph

The if referred to in this paragraph "en0" should be the same as in the example which
is "eth0". I guess that someone confused the AIX with the Linux device designation.

Anonymous   
Printed Page 263
Table 6-7, second attribute

Primary group attribute
"prgp"
should be:
"pgrp"

Anonymous   
Printed Page 308
2nd paragraph under "pam_listfile(auth)"

The example for the paragraph states:
"auth required pam_listfile.so onerr=fail sense=deny
file=/etc/ftpusers item=user"

The following paragraph says "This entry says that the file /etc/ftpusers (file
argument) contains a list of usernames (item=user) who should be denied access to
ftp (sense=allow)."

I believe that should say "... who should be denied access to ftp (sense=deny)." As
the paragraph continues to state "If you want to grant access to a list of users, use
the option sense=allow."

Anonymous   
Printed Page 316
last paragraph before Installing and Configuring OpenLDAP: An Overview

The website (http://ldap.hklc.com) listed as "a convenient interface for exploring standard LDAP schema objects" is no longer valid. The given link takes you to a phpinfo() for the website.

Anonymous  Aug 11, 2008 
Printed Page 317
Example LDIF file at bottom of page

The line "dc: ahania.com" appears to be incorrect. This value does not work for my
server (openldap-2.1.30 on Redhat GNU/LINUX 2.4.18-27.8.0smp).

When I try this I get the following error:
adding new entry "dc=ahania,dc=com"
ldapadd: update failed: dc=ahania,dc=com
ldap_add: Naming violation (64)
additional info: value of naming attribute 'dc' is not present in entry

=======
It only works if I make the dc: line :

dc: ahania

Thus matching the first domain component value in the dn: line :

dn: dc=ahania,dc=com

Anonymous   
Printed Page 419
4th paragraph

The sentence:
"Stub name servers function like slave name servers, but limit their data to the records corresponding systems that are to name servers." does not make any sense to me.

It is slightly clearer to me if it is transposed to:
"Stub name servers function like slave name servers, but limit their data to the records corresponding to systems that are name servers.*"

Since I am reading the book to find out how DNS works, I have no idea if this is a valid correction, but my amendment scans and makes literal sense, however it has been my experience that these qualities in technical documentation are not necessarily congruent.

Stu Rasmussen  Oct 24, 2011 
Printed Page 429
second code example

@ SOA IN should be @ IN SOA. The Linux DNS HOWTO says so, other books says
so and the error messages on my FreeBSD box say so as well...

Anonymous   
Printed Page 437
2nd paragraph (first code example)

In the example shown, shouldn't there be an open bracket "{" after the word "options"?

Anonymous   
Printed Page 481
Packet Sniffers -- second paragraph

Second word in second paragraph under the Packer Sniffer heading should be free
instead of freel.

Anonymous   
Printed Page 546
Table 9-3 / syslog mail facility messages

For the "syslog mail facility messages", /var/adm/maillog is listed for FreeBSD.

FreeBSD does not have /var/adm, like Solaris or Tru64 Unix... instead, all syslog
messages that fall under mail.info get placed under /var/mail/maillog.

Anonymous   
Printed Page 588
ldap configuration example

alias_maps = ldap:ldapsource
ldapaliases_server_host ....
ldapaliases_search_base ....

-> should be
ldapsource_server_host ....
ldapsource_search_base ....
etc

Anonymous   
Printed Page 591
1st line of last paragraph

The class is called "non_unknown" while It is spelt "no_unknown" everywhere else.

Anonymous   
Printed Page 692
2nd paragraph from the bottom

On Solaris, the option to specify filesystem type for mount is -F (this is the case
for Solaris 8 and 9, at least). In addition, the logical device files for block
devices are located in /dev/dsk. So the example for Solaris should be something
like:
mount -o ro -F hsfs /dev/dsk/c0t2d0s0 /mnt

Anonymous   
Printed Page 724
Table 11-2, Tru64 section

The Tru64 tape devices are listed as:
/dev/[n]rmt/tapen_dm

However, shouldn't it be something like this for Tru64 v5.x:
/dev/[n]tape/tapen_dm

Anonymous   
Printed Page 901
2nd code segment

I don't think this script exits with an '-h' flag, as the 'usage' on p. 900
indicates.

If that behavior is intended, you'd want something like:

elsif ($arg eq 'h') { &usage('') && exit; }

Anonymous   
Printed Page 906
2nd code segment, 5th line

print $sep if $matched2 && $nbef > $before && $show_sep && $show_fname;

should read

print $sep if $matched2 && $nbef > $before && $show_sep;

Anonymous