Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

How do I modify a file and preserve the ownership and permissons?

by Anonymous Monk
on Mar 06, 2001 at 03:20 UTC ( #62375=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question: (files)

I hava a script I wrote that recursivly does a search and replace on strings in text files. Once I have the desired text how do I write it back without changing the ownership and mode of the file? If i do: "open(SESAME, ">temp");" then the ownership is changed to me and mode is set to the default.

Originally posted as a Categorized Question.

  • Comment on How do I modify a file and preserve the ownership and permissons?

Replies are listed 'Best First'.
Re: How do I modify a file and preserve the ownership and permissons?
by Masem (Monsignor) on Mar 06, 2001 at 04:27 UTC
    When you open the file for writing there is no way of getting around the file system changing the permissions and the like on you. So the only way to deal with this is to capture these settings through the stat() function, and then to reapply the mode, uid and gid via chmod and chown. For example:
    my $filename = "some.txt"; my @stats = stat( $filename ); open( FILE, ">$filename" ) or die $!; # do your magic to the file.... close( FILE ); chmod $stats[2], $filename oe die $!; # mode is stored in stat field + 2 chown $stats[4], $stats[5], $filename or die $!; # uid in 4, gid i +n 5

    edit: chipmunk on 2001-03-05

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2021-04-20 05:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?