Many of you are dealing with the issue of securing objects in the Integrated File System (IFS). Specifically, you're struggling with stream files moving into and out of directories. Using stream files within a process often poses challenges because of the authorities with which stream files are created. Unfortunately, stream files don't inherit authorities from the directory. Rather, stream files are created with the owner having data authority *RWX and object authority *NONE. Both the primary group's and owner's authority are set to *EXCLUDE. You have no choice; this is how i5/OS authorizes stream files. You also have no choice about who owns the stream file. Even if you have configured the user profile attribute that causes newly created objects to be owned by the user's group, in the case of objects created into the IFS, the attribute is ignored. Therefore, the owner is always the user who created the stream file. This causes tremendous authorization challenges when one user creates the stream file and another user has to delete and re-create it or move it to another directory.
Options
The IFS ignores adopted authority, so that option isn't available.
If you've written the program to create the stream file, insert the Change Authority (CHGAUT) command immediately after the stream file is created. You can use CHGAUT to modify the *PUBLIC authority of the object, grant authority to a group, or secure the stream file with an authorization list so that other users can work with the stream file.
If stream file creation occurs in a vendor package, you may have to schedule a job that periodically changes the *PUBLIC authority, grants authority to users, or changes the object's ownership.
Another solution is to create a never-ending job that wakes up periodically to grant authority or change ownership.
The solution you choose depends on how quickly the authority or ownership must change to allow others to use the stream file.
Using Policy Minder to Work with Stream Files
Policy Minder provides a simple solution for ensuring stream files are owned and authorized appropriately.
From the Policy Minder Main menu, take option 1=Work with Policies and then option 5 on the *DIRAUT category. Press F6=Create to create a directory template. On the first screen, specify the path name of the directory that contains the stream file. If you want to ensure the directory itself is secured and owned properly, specify the appropriate values; otherwise, leave the attributes at the default (*ANY).
Scroll down until you come to the Work with Object Templates screen. Press F6=Create. This template defines how the stream file is to be owned and authorized. Specify the name of a specific stream file, a generic name (e.g., BankTransfer*), or the value *ALL. Specify the extension of *STMF or leave the extension field blank to apply the policy to all object types in the directory.
Scroll down. Specify the owner, authorization list, primary group, and *PUBLIC and private authorities of the stream file. (Leave the default *ANY if an attribute is unimportant to your policy.) Once you've specified the values you want, hit Enter until you return to the Directory Authorities screen.
To enable Policy Minder to manage stream file authorities, you must enable FixIt. On the directory template just created, select option 15=Enable FixIt. After a compliance check is run on the directory template, you can use FixIt to set the appropriate authority and ownership on the stream files.
If changing the ownership and authority of the stream files once daily is sufficient, schedule a job that runs the CHECK command and then runs FIXIT. For example...
- SKYVIEWPMP/CHECK CAT((*DIRAUT *STMF))—This command determines what stream file security attributes do not match your defined policy.
- SKYVIEWPMP/FIXIT CAT((*DIRAUT *STMF))—Policy Minder changes the security attributes of the stream file to match the policy. For example, if your policy requires that the stream file is owned by the STMFOWNER profile, FIXIT issues CHGOWN and changes the stream file owner.
To change the security attributes more frequently, create a CL program with these two commands along with the Delay Job (DLYJOB) command. DLYJOB causes the program to "wake up" and rerun these commands as often as you require.
Notes
FIXIT must be run with a profile having sufficient authority to make all changes.
FIXIT logs all changes it performs along with the previous value and the profile performing the change.
Carol Woodbury is president and co-founder of SkyView Partners Inc. a company specializing in security policy and compliance software and services. Carol is a system security expert, a noted author, and an award-winning presenter. Along with Pat Botz, Carol is the author of Experts' Guide to OS/400 & i5/OS Security.
LATEST COMMENTS
MC Press Online