Qualcuno ha mai affrontato l'argomento?
Magari risolvere con uno script cgi? Purtroppo in questo caso non so
nemmeno da dove iniziare.
Grazie in anticipo e saluti,
Emanuele
Beh... se è solo quello il comando, potresti utilizzare `sudo`,
specificando per quale eseguibile dare l'accesso root.
man sudo
man sudoers
/etc/sudoers
David
--
Linux Registered User #334216
Get FireFox! >> http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> http://www.debianizzati.org <<
> Emanuele Giglio ha scritto:
>> Salve a tutti,
>> ho necessità di eseguire un comando da PHP, il riavvio di squid. Poichè
>> questa è un'operazione riservata a root, il comando non va ovviamente a
>> buon fine.
>>
>> Qualcuno ha mai affrontato l'argomento?
>> Magari risolvere con uno script cgi? Purtroppo in questo caso non so
>> nemmeno da dove iniziare.
>>
>> Grazie in anticipo e saluti,
>> Emanuele
>
> Beh... se è solo quello il comando, potresti utilizzare `sudo`,
> specificando per quale eseguibile dare l'accesso root.
>
> man sudo
> man sudoers
> /etc/sudoers
>
> David
>
Sdebianizzati e suderai di meno!
man suexec
suexec -V
Come minimo dovrebbe ricompilare suexec ed aprire un varco nella sicurezza
del sistema il tutto per riavviare squid.
Html form (bottone raivvia) check.php (richiede una password e la verifica)
chiama client.pl che a sua volta chiama server.pl (che gira con i perms di
root e sta in ascolto su una porta XXX tcp ed accetta conn solo da
127.0.0.) server.pl verifica la password passata da client.pl (diversa da
quella passata dall'utente) se corrisponde invia l'unico comando
"/etc/init.d/squid start"
per maggior sicurezza perlcc client.pl e lo compili
Redhattizzati!
Oppure diventa indipendente dalla distribuzione con:
su -c comando
ADM
http://httpd.apache.org/docs/2.2/suexec.html
Se vuoi illuminarci con bel script... e spiegarci come fai a non farlo
processare da apache che a sua volta lo passa a suexec che imposta i perms
e lo esegue, siamo tutti orecchi..
Tra l'altro:
Se l’UTENTE ha una password, su la chiederà a meno che non sia lanciato
dall’utente con user ID reale pari a 0 (il superuser).
quindi su -c comando funziona solo se hai la password di root
(interattivamente) e quindi sarei curioso di capire quale genio lancerebbe
qualcosa del genere da uno script in .php
Ora se vogliamo continuare a sparare cazzate a vanvera.. altrimenti script
alla mano e si dimostra di essere dei sysadmin.
Apache ce l'avete sotto mano, quindi testate le vostre "teorie" prima di
propinarle.
Buon lavoro
Volentieri:
<? passthru("su utente -c ls < fileContenentePasswordInChiaro"); ?>
dove utente è l'utente con i permessi di eseguire il comando.
ls è il comando da eseguire
fileContenentePasswordInChiaro è un file contenente la password in
chiaro
>
> Tra l'altro:
> Se l'UTENTE ha una password, su la chiederà a meno che non sia lanciato
> dall'utente con user ID reale pari a 0 (il superuser).
>
v. sopra
> quindi su -c comando funziona solo se hai la password di root
> (interattivamente) e quindi sarei curioso di capire quale genio lancerebbe
> qualcosa del genere da uno script in .php
>
v. firma
> Ora se vogliamo continuare a sparare cazzate a vanvera.. altrimenti script
> alla mano e si dimostra di essere dei sysadmin.
>
fatto. Troll!!!
> Apache ce l'avete sotto mano, quindi testate le vostre "teorie" prima di
> propinarle.
>
> Buon lavoro
Grazie.
Piccolo appunto: il fatto di mettere la password in chiaro in un file
di testo è ovviamente una assurdità in tema di sicurezza. Il creatore
di questo post ha chiesto un consiglio. Sono state fornite due
possibilità e io ne ho solo mostrato una terza. Sta a chi lo utilizza
scegliere il più aderente alle proprie necessità.
ADM
>
> mpeg wrote:
>> [cut]
>> Se vuoi illuminarci con bel script... e spiegarci come fai a non farlo
>> processare da apache che a sua volta lo passa a suexec che imposta i
>> perms e lo esegue, siamo tutti orecchi..
>
> Volentieri:
>
> <? passthru("su utente -c ls < fileContenentePasswordInChiaro"); ?>
Bell'esempio, complimenti vivissimi sei appena stato promosso per la pulizia
dei cessi nella sede di Red Hat!
<?
$comando=system('ls');
$passfile="./passfile";
passthru("su root -c $comando < ./passfile");
?>
questo funziona ovvviamente!
anche:
$comando=system('cat /etc/passwd');
funziona chissà come mai..
-rw-r--r-- 1 root root 2589 14 giu 00:05 passwd
$comando=system('cat /etc/shadow');
NON FUNZIONA chissà come mai..
-r-------- 1 root root 1560 14 giu 00:05 shadow
$comando=system('shutdown -h now');
NON FUNZIONA indovina..
ne tutti gli altri che richiedono i perms di root ivi inclusi il restart dei
vari demoni!
Prova ancora Sam!
Quindi 'su' non può essere utilizzato da apache per acquisire UID=0.
Quando vorrai ripostare un esempio almeno assicurati che il comando in
questione richieda i perms di root così eviti di fare la figura del pirla!
Buon lavoro
Grazie a tutti,
E.