If the option letter
is one that is unknown to sendmail, it silently accepts
the line but doesn't use it. For example, entering O1
when you
really mean OI
causes the unknown option 1
to be defined
and the intended option I
to remain undefined. Because no error
message is printed, this kind of mistake is difficult to find.
Note that, when you are in doubt, a debugging level of -d37.1
can be used
to produce warnings (see Section 37.5.126, -d37.1).
Under versions of sendmail prior to V8.7,
accidentally placing a space character between the O
and the option
letter wrongly causes sendmail to silently
accept the space character as the option name. For example, the space in
"O A/etc/aliases
" gives to the option "space" the argument
A/etc/aliases
.
Beginning with V8.7, a space option causes a multicharacter option name
to be recognized (see Section 34.2.2, "V8.7 Configuration File Declarations").
Options are parsed from the top of the sendmail.cf file down.
Later declarations of an option supersede earlier declarations.
For example, if you try to change the location of the queue directory
by placing the line OQ/mail/spool/mqueue
at the top of your sendmail.cf
file, that change is masked (ignored) by the existence of
OQ/var/spool/mqueue
later in the file.
Command-line options always supersede the sendmail.cf file options,
because the command line is parsed after the sendmail.cf file
is parsed.
One way to change the location of the aliases file (perhaps
for testing) is with a command-line argument such as -oA/tmp/aliases
.
For security reasons, however, not all command-line options are
available to the ordinary user. (See Table 34.2
in Section 34.1.4, "Options that Are Safe" for a list of those that are available.)