Hi, Vern,
Thanks for the "heads up" about this. I have never heard of a *READONLY attribute before. It is something completely separate from the usual object authorities and data authorities.
I just ran a test at V7R3, creating a directory:
MKDIR '/home/MSW/test'
Then changed it to add that *READONLY attribute:
CHGATR OBJ('/home/MSW/test') ATR(*READONLY) VALUE(*yes)
Then I signed off and signed-on with a profile that has *ALLOBJ and I tried this:
RMVDIR '/home/MSW/test'
And, I get this message:
Additional Message Information
Message ID . . . . . . : CPFA1C5 Severity . . . . . . . : 40
Message type . . . . . : Diagnostic
Date sent . . . . . . : 04/03/24 Time sent . . . . . . : 20:28:42
Message . . . . : Object is a read only object. Object is /home/msw/test.
Cause . . . . . : An operation was requested on read only object
/home/msw/test that is not allowed on a read only object.
Recovery . . . : Attempt to change the object's read only attribute, using
the Change Attributes (CHGATR) command or Set Attributes (Qp0lSetAttr) API,
and then try the request again. If the object name is *N, it could not be
determined which object was read only. Refer to any previously issued
messages.
Bottom
Press Enter to continue.
F3=Exit F6=Print F9=Display message details
F10=Display messages in job log F12=Cancel
But, they told me what to do, right there in the message seen above. :-/
So, since I have *ALLOBJ, I just issued this:
CHGATR OBJ('/home/MSW/test') ATR(*READONLY) VALUE(*no)
and it says:
Attributes changed for 1 objects. 0 objects not changed.
And so now, I issue:
RMDIR '/home/MSW/test'
and it says:
Directory removed.
"A.N..D.... IT'S GONE!"
So, I think I stand by my advice regarding *ALLOBJ. :-)
All the best,
Mark S. Waterbury
On Wednesday, April 3, 2024 at 06:37:56 PM EDT, VERNON HAMBERG Owner via MIDRANGE-L <midrange-l@xxxxxxxxxxxxxxxxxx> wrote:
Hi Justin and all
I wondered about the *ALLOBJ bit here, so am watching Margaret Fenlon's COMMON presentation on IFS security. She says that the *READONLY attribute prevents writing or deleting the object, and *ALLOBJ cannot override this attribute. She underlined "or deleting".
Anyone who is a COMMON member can view the presentations in the IFS Bootcamp - of course, Mark, your good counsel to limit number of users with *ALLOBJ is absolutely valid.
On Wed, 3 Apr, 2024 at 4:07 PM, Mark Waterbury <mark.s.waterbury@xxxxxxxxxxxxx> wrote:
To: midrange systems technical discussion
Justin,
Any user with *ALLOBJ can always delete your precious directory, no matter what you do.
"*ALLOBJ" means "all objects" -- including IFS (*STMFs and directories).
This is why it is important to limit the number of user profiles with *ALLOBJ.
Just saying.
Mark S. Waterbury
On Wednesday, April 3, 2024 at 02:35:21 PM EDT, Justin Taylor <jtaylor.0ab@xxxxxxxxx<mailto:jtaylor.0ab@xxxxxxxxx>> wrote:
My goal is to make a directory that can't be deleted. *READONLY works OK
when I tested it, but I just wanted a sanity check.
Thanks
date: Tue, 2 Apr 2024 13:56:24 -0400
from: Rob Berendt <robertowenberendt@xxxxxxxxx<mailto:robertowenberendt@xxxxxxxxx>>
subject: Re: Read-only dir & files within?
I do not find any documentation on this. However this testing may answer
that:
MD DIR('/home/ROB/JT')
Directory created.
CHGATR OBJ('/home/ROB/JT') ATR(*READONLY) VALUE(*YES)
Attributes changed for 1 objects. 0 objects not changed.
EDTF STMF('/home/ROB/JT/test.txt')
The EDTF did create the file
DSPF STMF('/home/ROB/JT/test.txt')
The DSPF showed the changes.
There is an attribute called *RSTDRNMUNL you might want to read up on.
As an Amazon Associate we earn from qualifying purchases.