Account numbers for forked or spawned address spaces are set as
follows:
- Forked or spawned address spaces inherit accounting data from
the parent address space.
- When daemon processes such as rlogind or cron create
new work using setuid() and exec(), accounting data comes from the
user's RACF® profile (the WAACCNT
value in the WORKATTR segment). If this value is not defined in RACF, the address space will not
have accounting data.
Guideline: The
user ID starting the cron daemon should be different than the user
ID running the cron jobs in order to pick up the correct WAACCNT information
in the WORKATTR segment for the cron jobs that are running.
In
addition, if you have multiple UID(0) users defined, and you want
to track SMF accounting data for the cron daemon itself, there is
no guarantee you will get the same user ID that started the cron daemon
in your SMF type 30 records.
If there are multiple user IDs
in the OMVS segments that share UID(0), it will not be known which RACF profile will be used to create
accounting data, so results will be unpredictable.
- Accounting data can also be verified or changed using the IEFUAV
or IEFUSI installation exits.
Restriction: Your IEFUSI exit
will not receive any step account information for forked address spaces.
- With the _BPX_ACCT_DATA environment variable, users can change the account data
for a process that is about to be exec()'d or spawned.
- With the __spawn() service, the caller can define account information
in the spawn inheritance structure.
The IEFUAV exit is only passed control when the IEFUAV exit is
activated for subsystem OMVS (or all subsystems). This environment
typically describes the environment in which a daemon determines the
identity of a client, sets up the security environment, and passes
the routine control.
In the case of a fork(), spawn(), or exec() where the accounting
data is provided by a superuser, the IEFUAV exit is not passed control.