Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

set file permissions (2774) via perl upload script

Posted on 2014-04-17
7
Medium Priority
?
673 Views
Last Modified: 2014-06-07
Hello All

I have a script that uploads a file via HTTP on Apache and AIX.
The script works well.
Only issue is that the uploaded file is created with permissions 0644.
I need permissions 2774, note that 2 is Set GID. This is required by the 3rd party app that then takes the file after upload and imports it. When set only to 0644 the 3rd party app cannot read the file.
The file is an xml formatted file uploaded from a supplier.

I have tried adding the following command to the upload script but it does not make the required change, no error is returned.
my $mode = 2774;
system "chmod $mode, $filename";

Directory and file owner & group permissions are set to; nobody.users
The upload directory is not in the path of the Apache web service so security is not the first issue here.

Any assistance is appreciated.


Thanks in advance.
0
Comment
Question by:hairylots
7 Comments
 
LVL 29

Expert Comment

by:Jan Springer
ID: 40006460
Have you tried using perl's chmod?
0
 
LVL 62

Expert Comment

by:gheist
ID: 40006733
Apache on AIX does not run as root, so it cannot change those permission bits.
Use sftp or something that allows to change permissions.
0
 

Author Comment

by:hairylots
ID: 40008083
Hello gheist

Thankyou for that tip.
SFTP is not an option. I am stuck between 2x 3rd parties, 1st is the supply of xml data who state only via http upload and 2nd is the application owner who require the set GID bit.

If Apache will not allow this without running as root (very bad idea), then I need to think outside the square and use something like inotify or cron tasks as root. Open to suggestions.

Hello _jesper_
I am not familiar with perl chmod, is that different to system chmod?

Thanks in advance.
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 3

Expert Comment

by:bigbed
ID: 40108660
Your command is "chmod $mode, $filename".
I think you need to remove the comma, to give "chmod $mode $filename"
I can't see anything in the AIX docs about it being limited to root (but I don't have an AIX machine to hand).
good luck,
Tim
0
 

Author Comment

by:hairylots
ID: 40110272
Hello bigbed

The command works as is in a perl script when run as root.
Issue is that other special users need to execute that script not as root, the HTTP upload does not set the correct permissions when it is uploaded to allow group users to make the change.
0
 
LVL 62

Accepted Solution

by:
gheist earned 1500 total points
ID: 40110330
Permosdion 0x2000 can be set only by root
0
 

Author Closing Comment

by:hairylots
ID: 40120062
correct answer
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap (http://www.tcpdump.org) Version 1.2 2.      Jpcap(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html) Version 0.6 Prerequisite: 1.      GCC …
Email validation in proper way is  very important validation required in any web pages. This code is self explainable except that Regular Expression which I used for pattern matching. I originally published as a thread on my website : http://www…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Suggested Courses

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question