Comando shell da PHP [Risoltissimo]

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
some0ne
Prode Principiante
Messaggi: 22
Iscrizione: martedì 15 settembre 2009, 11:50

Comando shell da PHP [Risoltissimo]

Messaggio da some0ne »

Ciao,vorrei sapere come lanciare un comando,precisamente /etc/init.d/squid3 restart da una pagina php con exec() o roba simile...ovviamente quel comando ha bisogno di privilegi di root,qualche idea ?
Ultima modifica di some0ne il mercoledì 7 ottobre 2009, 11:11, modificato 1 volta in totale.
Avatar utente
Valix
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 272
Iscrizione: venerdì 3 novembre 2006, 17:53
Contatti:

Re: Comando shell da PHP

Messaggio da Valix »

ti basta creare un file con dentro la tua password
per esempio creiamo un file chiamato pass all'interno della tua home

ora nel tuo file php inserisci

Codice: Seleziona tutto

<?php
shell_exec('sudo -u root -S /etc/init.d/squid3 restart < /home/$User/pass');
?>
>> Quando avete risolto un problema, mettete [Risolto] nel titolo del primo post <<

L'immaginazione è più importante della conoscenza. La conoscenza è limitata, l'immaginazione abbraccia il mondo. Albert Einstein
Avatar utente
dirty_paul
Prode Principiante
Messaggi: 235
Iscrizione: mercoledì 28 gennaio 2009, 18:16

Re: Comando shell da PHP

Messaggio da dirty_paul »

...scusate mi intrometto anche io nella discussione.

Per esegiore comando o script con privilegi di root esempio:

Codice: Seleziona tutto

sudo lshw -html
voglio eseguirlo su una pagina php non da root:

Codice: Seleziona tutto

<?php
	echo shell_exec('lshw -html');
?>

tutto ok,
se voglio farlo da root?
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

dirty_paul ha scritto: ...scusate mi intrometto anche io nella discussione.

Per esegiore comando o script con privilegi di root esempio:

Codice: Seleziona tutto

sudo lshw -html
voglio eseguirlo su una pagina php non da root:

Codice: Seleziona tutto

<?php
	echo shell_exec('lshw -html');
?>

tutto ok,
se voglio farlo da root?
lo ha scritto Valix sopra..

Codice: Seleziona tutto

echo shell_exec('sudo -S lshw -html < file_che_contiene_la_password');
Avatar utente
dirty_paul
Prode Principiante
Messaggi: 235
Iscrizione: mercoledì 28 gennaio 2009, 18:16

Re: Comando shell da PHP

Messaggio da dirty_paul »

...esatto, ma non mi funziona
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

dirty_paul ha scritto: ...esatto, ma non mi funziona
l'ho provato adesso e a me funziona.. mi stampa tutto l'output  :-\
Avatar utente
dirty_paul
Prode Principiante
Messaggi: 235
Iscrizione: mercoledì 28 gennaio 2009, 18:16

Re: Comando shell da PHP

Messaggio da dirty_paul »

a me continua a non funzionare

...non so.

forse dipende dai privilegi utente www-data?
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

dirty_paul ha scritto: a me continua a non funzionare

...non so.

forse dipende dai privilegi utente www-data?
io l'ho eseguito direttamente con il comando php in effetti.. comunque sì, assicurati che il file sia leggibile da www-data, dovrebbe essere quello il problema.

EDIT: beh, ma adesso che ci penso.. www-data non è tra i sudoers.. lo devi aggiungere
Ultima modifica di ReMichael il martedì 6 ottobre 2009, 23:29, modificato 1 volta in totale.
Avatar utente
dirty_paul
Prode Principiante
Messaggi: 235
Iscrizione: mercoledì 28 gennaio 2009, 18:16

Re: Comando shell da PHP

Messaggio da dirty_paul »

e infatti come immaginavo.
era l'ultima prova che volevo fare ed infatti funziona.
comunque grazie

una domanda:
mettendo l'utente www-data tra i "sudoers" , cambia qualcosa a livello di sicurezza oppure...
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

dirty_paul ha scritto: e infatti come immaginavo.
era l'ultima prova che volevo fare ed infatti funziona.
comunque grazie

una domanda:
mettendo l'utente www-data tra i "sudoers" , cambia qualcosa a livello di sicurezza oppure...
secondo me sì.. non usano root appunto per la sicurezza, mettendo www-data nei sudoers a mio parere come rischi ci avviciniamo.. poi non so quanto sia sfruttabile la cosa, però non è il massimo  :)
some0ne
Prode Principiante
Messaggi: 22
Iscrizione: martedì 15 settembre 2009, 11:50

Re: Comando shell da PHP

Messaggio da some0ne »

dirty_paul ha scritto: e infatti come immaginavo.
era l'ultima prova che volevo fare ed infatti funziona.
comunque grazie

una domanda:
mettendo l'utente www-data tra i "sudoers" , cambia qualcosa a livello di sicurezza oppure...
ho provato ad aggiungere www-data ai sudoers con usermod -a -G admin www-data
ma non funge...
qualcuno mi copia incolla il suo /etc/sudoers con www-data dentro?
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

some0ne ha scritto:
dirty_paul ha scritto: e infatti come immaginavo.
era l'ultima prova che volevo fare ed infatti funziona.
comunque grazie

una domanda:
mettendo l'utente www-data tra i "sudoers" , cambia qualcosa a livello di sicurezza oppure...
ho provato ad aggiungere www-data ai sudoers con usermod -a -G admin www-data
ma non funge...
qualcuno mi copia incolla il suo /etc/sudoers con www-data dentro?
aggiungilo al gruppo così:

Codice: Seleziona tutto

sudo adduser www-data admin
some0ne
Prode Principiante
Messaggi: 22
Iscrizione: martedì 15 settembre 2009, 11:50

Re: Comando shell da PHP

Messaggio da some0ne »

continua a non funzionare :\

some0ne@Userver:~/www$ sudo adduser www-data admin
The user `www-data' is already a member of `admin'.

anche se è gia membro non riesco ad eseguire comandi shell via php...
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

some0ne ha scritto: continua a non funzionare :\

some0ne@Userver:~/www$ sudo adduser www-data admin
The user `www-data' is already a member of `admin'.

anche se è gia membro non riesco ad eseguire comandi shell via php...
prova ad usare sudo da console con l'utente www-data per verificare se funziona o no.. nel caso che così funziona, il problema sta nella pagina php
some0ne
Prode Principiante
Messaggi: 22
Iscrizione: martedì 15 settembre 2009, 11:50

Re: Comando shell da PHP

Messaggio da some0ne »

prova ad usare sudo da console con l'utente www-data per verificare se funziona o no.. nel caso che così funziona, il problema sta nella pagina php
some0ne@Userver:~$ sudo -u www-data /etc/init.d/squid3 restart
ulimit: 33: error setting limit (Operation not permitted)
* Restarting Squid HTTP Proxy 3.0 squid3                                                                                                                    ulimit: 144: error setting limit (Operation not permitted)
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

some0ne ha scritto:
prova ad usare sudo da console con l'utente www-data per verificare se funziona o no.. nel caso che così funziona, il problema sta nella pagina php
some0ne@Userver:~$ sudo -u www-data /etc/init.d/squid3 restart
ulimit: 33: error setting limit (Operation not permitted)
* Restarting Squid HTTP Proxy 3.0 squid3                                                                                                                    ulimit: 144: error setting limit (Operation not permitted)
non so se è corretto fare così.. prova a fare un su a www-data e poi lanciare il comando con sudo
some0ne
Prode Principiante
Messaggi: 22
Iscrizione: martedì 15 settembre 2009, 11:50

Re: Comando shell da PHP

Messaggio da some0ne »


non so se è corretto fare così.. prova a fare un su a www-data e poi lanciare il comando con sudo
www-data mi chiede una password ...
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

some0ne ha scritto:

non so se è corretto fare così.. prova a fare un su a www-data e poi lanciare il comando con sudo
www-data mi chiede una password ...
quando lanci sudo da www-data ti chiede la password? o quando cerchi di passare a www-data con su?
some0ne
Prode Principiante
Messaggi: 22
Iscrizione: martedì 15 settembre 2009, 11:50

Re: Comando shell da PHP

Messaggio da some0ne »

su www-data
Password:

l'ho impostata con sudo passwd www-data

poi ho fatto su www-data

e da www-data ho lanciato
sudo /etc/init.d/squid3 restart e funge

ora pasto il codice php,magari cè qualcosa che non va li..:

some0ne@Userver:~/www$ cat write.php
Avatar utente
ReMichael
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4042
Iscrizione: venerdì 30 novembre 2007, 22:02

Re: Comando shell da PHP

Messaggio da ReMichael »

some0ne ha scritto: su www-data
Password:

l'ho impostata con sudo passwd www-data

poi ho fatto su www-data

e da www-data ho lanciato
sudo /etc/init.d/squid3 restart e funge

ora pasto il codice php,magari cè qualcosa che non va li..:

some0ne@Userver:~/www$ cat write.php

mmm.. togli dal comando "-u root" e controlla che il file pass sia leggibile da www-data (e che ovviamente contenga la password di www-data)
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 14 ospiti