Xserver authorization running scripts via Apache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am trying to run a simple script which brings up a gnome terminal on the user’s display. I have created a perl cgi script which calls a shell script using a system call. If I run the perl cgi script from the command line, it brings up the gnome terminal correctly. If I try running the perl cgi script via the Apache web server, I get the following error in /var/log/httpd/error_log:

 

<Date> [error] [client 10.61.8.152] Failed to parse arguments: Cannot open display: 10.61.8.152:0.0 …

 

The obvious answer would be that I am not setting the DISPLAY environment variable or that xhost is not set to allow the display. I have tried setting the DISPLAY variable but am specifying the display parameter as argument for gnome-terminal in any case. I have used xhost + to ensure it is not restricting it but I still get the error.

 

The perl cgi script call is made with:

my @args=(“/tmp/monitor.sh &”);

my $status=system(“@args”);

 

The monitor.sh shell script call for xterm is made with:

gnome-terminal –display=10.61.8.152:0.0 –geometry=125x24 –hide-menubar –title=”My title”

 

I am initially testing this out locally on the apache server system so the display address is that of the Apache server. The server has a running Xserver and as mentioned, the script works if called from the command line.

 

I have setup Apache to run as a local user rather than Apache user. The scripts are both owned by this same user and have permissions set accordingly. I added a command in the shell script to create a text file. When run via the Apache server, the file is created with the ownership of the user I specified confirming that the shell is being run as the expected user.

 

I have also tried making the call using ssh with –X option from either the cgi-script or the shell script but, despite setting up ssh to allow passwordless login for the user in question and again, seeing it run OK from command line, I have problems running via Apache server, getting the error:

<Date> [error] [client 10.61.8.152] ssh: connect to host <hostname> port 22: Permission denied …

 

If I try calling the gnome terminal directly from the perl cgi script, I get the same errors stated. I would prefer to start it from the shell script though since I want to run other commands from the script too and it would be easier.

 

Apache info:

Server version: Apache/2.2.15 (Unix)

Server built: Dec 5 2012 04:03:01

 

Unix info:

Redhat 6.4 x86_64

 

Any help would be greatly appreciated,

Thanks,

Alvin


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux