Das externe Programm muss die Rechte 755 haben. Und Ordner, in die das externe Programm evtl. schreibt, müssen die entsprechenden Rechte haben...
Das Problem ist häufig, dass man vergisst
eine Sache richtig zu setzen. Deswegen solltest Du wissen, was das andere Programm macht. Ob es Dateien erstellt und wo, in welche Dateien es schreibt, welche
dritten Programme es aufruft...
Der User, der das CGI-Skript ausführt, bist ja nicht Du, sondern der Standarduser des Webservers. Der hat meistens die niedrigsten Rechte...
Was genau das Problem ist lässt sich ganz gut so rausfinden:
#! /usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = CGI->new();
print $cgi->header(-type => 'text/html');
my $result = `programmaufruf 2>&1`; # Backticks!!
print $result;