PDA

Visualizza la versione completa : eseguire uno script SH


Amir89
29-11-2004, 23:05
Salve a tutti,
dovrei eseguire uno script SH che al suo interno include links ad altri script che necessitano dei permessi dell'user root. In un primo momento ho provato con il PHP e con shell_exec ma naturalmente l'apache mi eseguiva lo script sh ma non avendo i permessi root non mi eseguiva lo script. Poi dopo mi è stato consigliato di usare un wrapper CGI (suEXEC) che mi avrebbe permesso di eseguire codice con i permessi del proprietario. Il fatto è che se io "chowno" il file .cgi a root quando lo vado a richiamare da browser mi viene restituito l'errore 505 (perché il suEXEC vede che la cartella in cui eseguo lo script non ha i permessi root), se imposto come owner della cartella l'user "root" mi viene dato da browser l'errore 403 (Forbidden...in poche parole Accesso negato...) e comunque non riesco a vedere nulla.

Ormai non so più cosa fare, ho letto anche molte delle discuss che sono state postate qui....ed ho letto della funz. sudo, ma il fatto è che non so come usarla "in una unica riga" cioè senza dover scrivere io la pwd dopo l'invio del comando.
Vi pregherei di esser il più chiari possibile...visto che mi sono avvicinato da poco al CGI.

Grazie a tutti coloro che mi risponderanno,

XXXXXXXXXXXXXX

Claudio Vituzzi
30-11-2004, 05:22
prova a chiedere al newsgroup it.comp.os.linux.iniziare come fare ad eseguire una sudo su unica riga...

poi prova a chiedere a it.comp.lang.perl come risolvere i tuoi problemi con gli errori che hai riportato...

Silvia85
30-11-2004, 15:47
Ciao,

poiché avevo + o - il tuo stesso problema (sto su uno spazio a pagamento che offre il PdC Plesk, quindi ho un virtualhost) ho cercato in giro ed ho trovato questo script perl http://search.cpan.org/~landman/Sudo-0.10/lib/Sudo.pm :D

L'unico prob è che non ci ho capito nulla di come farlo andare :master: :master:

Spero che questo mex possa aiutare sia te che me Amir :)

Aspetto le vostre risposte,

Ciao :ciauz:

Claudio Vituzzi
01-12-2004, 02:08
use Sudo;
my $su;

$su = Sudo->new(
{
sudo => '/usr/bin/sudo',
username => $name,
password => $pass,
program => '/usr/bin/programma da eseguire',
program_args => '...argomenti da passare al programma da eseguire'
}
);

$result = $su->sudo_run();
if (exists($result->{error}))
{
&handle_error($result);
}
else
{
printf "STDOUT: %s\n",$result->{stdout};
printf "STDERR: %s\n",$result->{stderr};
printf "return: %s\n",$result->{rc};
}

Silvia85
01-12-2004, 17:02
Originariamente inviato da Claudio Vituzzi


use Sudo;
my $su;

$su = Sudo->new(
{
sudo => '/usr/bin/sudo',
username => $name,
password => $pass,
program => '/usr/bin/programma da eseguire',
program_args => '...argomenti da passare al programma da eseguire'
}
);

$result = $su->sudo_run();
if (exists($result->{error}))
{
&handle_error($result);
}
else
{
printf "STDOUT: %s\n",$result->{stdout};
printf "STDERR: %s\n",$result->{stderr};
printf "return: %s\n",$result->{rc};
}


Non va...perché devo installare prima quella libreria e mi hanno detto che non va bene perché il Plesk fa casini :cry:

Non potrei eseguire un comando tipo "su use"r e poi metter il comando?
Come passo poi la pwd senza doverla metter io come faccio da shell? :confused:

a me servirebbe solo eseguire un comando in automatico con un .cgi o pl come user root o admin.

Ps. Avendo un serv. virtuale col plesk posso fare anche piccole modifiche a file di configurazione...ma non a programmi.

Sareste così gentili da dirmi 2-3 righe di cod. CGI o pl per far ciò? :zizi: :zizi:

Un bacione a tutti,
Silvia.

Loading