Prior to V8.7 the user and group identities under which sendmail ran were defined by an elaborate set of properties (described under the F=S delivery agent flag in F=S). Beginning with V8.7, sendmail now offers the U= delivery agent equate as the means to define those identities. If the U= delivery agent equate is specified, it sets the default user and group identities for the delivery agent and always overrides the values of the DefaultUser option (DefaultUser). If the F=S delivery agent flag is not set, any controlling user will override this U= delivery agent equate. The form of the U= delivery agent equate looks like this: U= user:group Here, user is the alphanumeric identity of a user on the local system. The user is looked up with the method defined by the MailboxDatabase option (MailboxDatabase). [20] If user is found, the numeric user-id returned becomes the value used. Otherwise, user , which must be fully numeric, becomes the value used.
The colon , [21] if present, is followed by the alphanumeric identity of a group on the local system. If group is found in the local group (5) file, the numeric group-id from that file is used. Otherwise, group , which must be fully numeric, becomes the value used. If the colon and group are missing and if user was found when looked up, the value is taken from the group-id returned by the lookup.
Some delivery agents provide mc macros with which to add a U= equate. For example, the following mc configuration lines add that default to the various cyrus delivery agents: define(`CYRUS_MAILER_USER', `cyrus:nullmail') this must be MAILER(`cyrus') before this See the section describing a particular delivery agent to find an appropriate mc macro with which to redefine the U= for that delivery agent. See Table 20-1, in Section 20.4, for a guide to all delivery agents. For some delivery agents, there are no mc configuration macros available to directly give a value to this U= equate. Instead, you can use a bit of sleight of hand to add a U= to a particular delivery agent: define(`LOCAL_MAILER_PATH', `/usr/lib/mail.local, U=mail:mail') this must be MAILER(`local') before this The LOCAL_MAILER_PATH mc configuration macro (See this section) is usually used to define the path for the local delivery agent. Instead of using it for that reason, here we simply restate the path that appears in the current sendmail.cf file, and add the U= declaration to that path. As with all modifications of delivery agent equates, the modification must precede the MAILER declaration for the corresponding delivery agent. |