Can't execute shell commands in CGI

L

Luckystr Luckystr

It is necessary to execute linux command in CGI(apache)
Code:
def cmd(com)
system("#{com}>log.log")
end
cmd("pwd")
There isn't errors but log.log is empty
Else:
Code:
def cmd
system("pwd>log.log")
end
cmd
there isn't result too.
 
7

7stud --

Luckystr said:
It is necessary to execute linux command in CGI(apache)
Code:
def cmd(com)
system("#{com}>log.log")
end
cmd("pwd")
There isn't errors but log.log is empty
Else:
Code:
def cmd
system("pwd>log.log")
end
cmd
there isn't result too.

1) There aren't any code tags here. You can just post your code and the
indenting will be preserved.

2) Where is log.log located in your Apache directory structure? The
correct path to that file needs to be specified in your cgi script.

3) Check your apache error logs located here:

/logs/error_log

and see what the last few lines say. It may say something like:

log.log: Permission denied

In that case, you'll need to change the permissions for log.log to give
'others' write privileges, so that your script can write to log.log,
something like this:

$ sudo chmod o+w /full/path/to/log.log
 
L

Luckystr Luckystr

7stud said:
Luckystr said:
It is necessary to execute linux command in CGI(apache)
Code:
def cmd(com)
system("#{com}>log.log")
end
cmd("pwd")
There isn't errors but log.log is empty
Else:
Code:
def cmd
system("pwd>log.log")
end
cmd
there isn't result too.

1) There aren't any code tags here. You can just post your code and the
indenting will be preserved.

2) Where is log.log located in your Apache directory structure? The
correct path to that file needs to be specified in your cgi script.

3) Check your apache error logs located here:

/logs/error_log

and see what the last few lines say. It may say something like:

log.log: Permission denied

In that case, you'll need to change the permissions for log.log to give
'others' write privileges, so that your script can write to log.log,
something like this:

$ sudo chmod o+w /full/path/to/log.log

errorlog:
sh: log.log: Permission denied

The path log.log can be correct since ">" creates a file if it does not
exist.
But just in case, I checked path in script make access pattern 0777.
Outgoing from logfile, I think that there is error because user "apache"
doesn't have shell.
I tried to make apache's shell by "adduser" by "root" but linux said
that it's impossible.
 
B

Bertram Scharpf

Hi,

Am Dienstag, 18. Aug 2009, 05:46:54 +0900 schrieb Luckystr Luckystr:
errorlog:
sh: log.log: Permission denied

Redirect $stderrr, too. Direct it into /tmp to avoid access rights
problems while you're testing.

Bertram
 
B

Brian Candler

Luckystr said:
It is necessary to execute linux command in CGI(apache)
Code:
def cmd(com)
system("#{com}>log.log")
end
cmd("pwd")
There isn't errors but log.log is empty

Try:
system("pwd >/tmp/log.log")
 
L

Luckystr Luckystr

Brian said:
Luckystr said:
It is necessary to execute linux command in CGI(apache)
Code:
def cmd(com)
system("#{com}>log.log")
end
cmd("pwd")
There isn't errors but log.log is empty

Try:
system("pwd >/tmp/log.log")

thank all, and thank you, Brian Candler. /tmp/log.log has pwd
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top