Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

MIME:Parser vs. file permissions

by graff (Chancellor)
on Sep 23, 2002 at 07:03 UTC ( #200029=perlquestion: print w/ replies, xml ) Need Help??
graff has asked for the wisdom of the Perl Monks concerning the following question:

I'm using MIME::Parser to extract data attachments from email being sent to me at regular intervals. It's great, and I need only one improvement (for a linux or solaris environment):

The extracted file attachments are being written to disk with owner-only access permissions (rwx------ (700) on directories, and rw------- (600) on data files), and I would prefer at least group-read/execute (750 for directories, 640 for data files) -- global read/execute access would actually be better.

I went over the MIME::Parser and MIME::Parser::Filer man pages, but did not see any relevant information.

What makes it troublesome is that, in the simplest case, you don't really know what paths/files are being created until MIME::Parser is done. You need to figure out afterwards which directories were created, "chmod go+x" on those, then "chmod -R go+r"... (I don't want to make the data files executable.) It would just be a lot easier if the mode flags could be set the way I want in the first place. But how?

The man page for MIME::Parser::Filer says "you can easily define your own subclass of MIME::Parser::Filer and override" the default behavior, but an example (not provided there) would be really helpful... THANKS!

Comment on MIME:Parser vs. file permissions
Replies are listed 'Best First'.
Re: MIME:Parser vs. file permissions
by davis (Vicar) on Sep 23, 2002 at 08:32 UTC
    You may wish to try changing your umask. Try perldoc -f umask or man umask. The umask influences the permissions of created files, usually by 'masking' off permission bits which you don't want. Try something along the lines of:
    umask(0011);
    near the top of your code.
    cheers
    davis
    Is this going out live?
    No, Homer, very few cartoons are broadcast live - it's a terrible strain on the animator's wrist
MIME::Parser and specifying directories for saving attachments
by jlongino (Parson) on Sep 23, 2002 at 14:14 UTC
    Although it's true you may not know what the file names are until MIME::Parser is done, you do have the option of specifying where to store the attachments beforehand:
    use strict; use warnings; use MIME::Parser; my $dir = "./mimemail"; my $parser = new MIME::Parser; $parser->output_dir($dir); my $entity = $parser->read(\*STDIN) || die "couldn't parse MIME stre +am";
    You should have enough information at this point to change permissions on the directory or the files within it. Then again, maybe I misunderstand your question. The suggestion by davis should work in any case.

    --Jim

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://200029]
Approved by Aristotle
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2015-07-31 10:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (276 votes), past polls