Welcome to WebmasterWorld Guest from

Forum Moderators: coopster & jatar k & phranque

Message Too Old, No Replies

Open() returns permission denied in Perl CGI

3:38 pm on Feb 6, 2009 (gmt 0)

New User

5+ Year Member

joined:Jan 19, 2009
posts: 6
votes: 0

I have problem in opening a file in Perl CGI coding. I was able to open a file when I have it in /var/www/cgi-bin/ or /var/www/html/ directories.

I was not able to open a file from any other directory. I don't see any access problem in the httpd logs (access_log), put the open() function returns "Permission denied" error. I have kept the 755 permission for the file.

the file is in /dep/abc/def/<varing-name>/*.log

I have created <Directory "/dep/abc/def/">
options all
Allowoveride None
Order allow,deny
allow all
</directory> in httpd.conf file..

I'm not sure this problem comes because httpd.conf configuration issues or permission problem in Perl

If it is httpd.conf issue then access_log file should show that error... that is not happening..

If Perl permission issue then it should open the file even if it is /var/www/cgi-bin directory

Please help me, I want to open a text file from /dep/abc/def/<variying-directory>/<variyingfilename>.log

The variying based on the user selection.

5:04 pm on Feb 6, 2009 (gmt 0)

Senior Member

WebmasterWorld Senior Member 5+ Year Member

joined:May 31, 2008
votes: 0

the permissions are most likely the problem - though it's not a matter where the file sits, it's about who owns the file you want to read and which mode is set on it.
if it's the same user, anything including reading should work (644 for example). if it's owned by another user, just give read-permission to world, again, 644 should do.

it's not about permissions on your cgi-script.

8:29 pm on Feb 6, 2009 (gmt 0)

Junior Member

5+ Year Member

joined:Dec 20, 2008
votes: 0

Where is this directory:


in relationship to your root directory?

Do the folders also have proper read/write/exe permissions?

5:19 am on Feb 7, 2009 (gmt 0)

New User

5+ Year Member

joined:Jan 19, 2009
posts: 6
votes: 0

My apache running as "nobody" and group "nobody"

My files are in "root" and "root"

I have permissions for 755 755 for all the files and directories.

Still I get permission denied problem..

Can you give me httpd.conf entry for accessing a directory and file in that directory.

7:44 am on Feb 7, 2009 (gmt 0)

New User

5+ Year Member

joined:Jan 19, 2009
posts: 6
votes: 0

I hvae entry in httpd.conf file as

<Directory "/dep/abc/def/">
Options All
AllowOverride None
Options ExecCGI FollowSymLinks Indexes
Order allow,deny
Allow from all

and my files are in /dep/abc/def/#*$! directory
in which my /dep/abc/def is the base directory and the #*$!/filename will be varying depend on the user selecting it

I have function as

sub get_log_content {
my $fullFilename = shift;
my @contents;
my $error=0;
open(FILE, $fullFilename) ($error = 1);
if ($error) {
push @contents, "$fullFilename File Open Error: $!";
return @contents;
while (<FILE>) {
push @contents, $_;
return @contents;

When I call these function it returns

/dep/abc/def/#*$!/yyy.log File Open Error: Permission denied

all the path have permission 755, own is root and group is root

and apache is running as nobody and nobody

I was able to open a file only in / & /var/www/cgi-bin & /var/www/html locations and not able to access anywhere else

Please help me out

[edited by: phranque at 1:56 pm (utc) on Feb. 7, 2009]
[edit reason] disabled graphic smileys ;) [/edit]


Join The Conversation

Moderators and Top Contributors

Hot Threads This Week

Featured Threads

Free SEO Tools

Hire Expert Members