http://qs321.pair.com?node_id=700718

bradcathey has asked for the wisdom of the Perl Monks concerning the following question:

Fellow Monasterians,

I comfortable working on the command line to do this, but I've created Web app that uses CGI's upload method to upload a file from the browser. On the way, if the subdirectory 'foobar' doesn't exist, my script makes it.

I have the permissions working, but I'm getting the desired ownership of:

drwxrwx--- 2 www-data sftp 4096 2008-07-28 22:18 foobar

instead I'm ending up with:

drwxrwx--- 2 www-data www-data 4096 2008-07-28 22:18 foobar

Likewise, the file ownership itself is the same:

-rwxrwx--- 1 www-data www-data 27034 2008-07-28 22:32 wilma.jpg

Here's my script:

mkdir('foobar') or die...; my $mode = 0770; chmod $mode, 'foobar' or die...; chown 'www-data', 'sftp', 'foobar' or die...; my $upload_filehandle = $query->upload($upload); open UPLOADFILE, ">$upload_dir/$filename"; binmode UPLOADFILE; while ( <$upload_filehandle> ) { print UPLOADFILE; } close UPLOADFILE; $mode = 0770; chmod $mode, "$upload_dir/$filename";

Is this even possible? Thanks.

Update: Fixed typo

Update 2: per comments of the good monks, I changed chown 'www-data', 'sftp', 'foobar' or die; to chown -1, 1003, 'foobar' or die; (1003 being the numeric equivalent for the group) for success.

—Brad
"The important work of moving the world forward does not wait to be done by perfect men." George Eliot