You can have as many different initial programs as you like – if necessary you can have a different one for each user. I wouldn’t recommend making one for each user because you will hten have to maintain all those programs. But you should very easily be able to make a few different initial programs for specific groups of users (e.g. accounts, sales, personnel, etc).
An initial program is simply a program that gets called whenever a user signs on to the system, the initial program is attached to the user profile. You can change someone’s initial program by using the WRKUSRPRF or CHGUSRPRF commands.
Be careful if you do this with your own profile, because if your initial program doesn’t work or doesn’t exist you may not be able to sign on anymore. You can try this by keeping one session signed on while you test.
You may want to have a datafile which contains the user and rules – lib list – restrictions, etc
Have your initial program find the user’s record(s) and process the rules that apply to this user.
We use the Initial Program especially in our test environments to set the appropriate library lists and output queues. Does the same for our end users in our production environments.
Hope this helps,