On Jul 10, 2010, at 2:05 PM, Mark Berryman wrote:

Is the following expected behavior?

With normal default protections set:

$ say := write sys$output
$ say f$env("protection")
SYSTEM=RWED, OWNER=RWED, GROUP=RE, WORLD
$ perl -e "open(F,'>1.1'); print F 1; close F;"
$ dir/sec 1.1

Directory USERS:[BERRYMAN]

1.1;1                [BERRYMAN]                       (RWD,RWD,R,)

However, change the owner default to read-only and:

$ set prot=ow:re/def
$ say f$env("protection")
SYSTEM=RWED, OWNER=RE, GROUP=RE, WORLD
$ perl -e "open(F,'>1.1'); print F 1; close F;"
$ dir/sec 1.1

Directory USERS:[BERRYMAN]

1.1;1                [BERRYMAN]                       (R,R,R,)

Why is the file being created with system only having Read access when the owner default is set to read?


Good question. And the other weird thing is it gives you only read protection when you asked for execute as well. I have a feeling that it's line 2601 of perlio.c, but I need to read up and remind myself how Unix protection masks interact with VMS default protections. The current perlio.c is at:

<http://perl5.git.perl.org/perl.git/blob/HEAD:/perlio.c>

and the lines I'm suspecting look like:

2600             imode = PerlIOUnix_oflags(mode);
2601             perm = 0666;

Should that be 0777 or something in order to assume VMS defaults?

________________________________________
Craig A. Berry
mailto:craigbe...@mac.com

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to