PDA

Visualizza la versione completa : Cambiare la data di sistema (linux) da php


iuzzolino
08-11-2007, 17:46
Ciao, come da oggetto, volevo sapere com'Ŕ possibile cambiare la data di sistema da una pagina php che gira sotto apache 2. Ho provato ad eseguire il comando

system("date -s 'nuovadata'");

ma la modifica non ha effetto. Ovviamente la sintassi del comando date Ŕ giusta, e se la provo direttamente sulla shell funziona. Evidentemente l'utente con cui gira lo script (apache2) non ha i permessi per fare una simile operazione. Ho provato anche ad installare sudo sul server (debian) e ad inserirlo nella stringa del comando che passo a system:

system("sudo -u root -p password date -s ....")

ma la pagina impiega qualche secondo a ricaricarsi (come se la password che fornisco non fosse quella giusta), poi il risultato non cambia. Ho provato ad inserire con visudo l'utente apache2 nella configurazione di sudo per abilitarlo a questa istruzione, ma niente.

Immagino sia un problema di permessi, ma non so come muovermi.

ciao e grazie in anticipo a tutti

ps: scusate se ho postato la stessa domanda nel forum di php, ma lý non mi ha saputo rispondere ancora nessuno.

raistlin76
08-11-2007, 17:57
Devi dare la possibilitÓ all'utente www-data di utilizzare date senza la richiesta di password.
Per farlo inserisci nel file /etc/sudoers la seguente riga d'esempio (suppongo che date sia in /bin):
www-data ALL = NOPASSWD: /bin/date

Io lo uso per riavviare e spegnere via web i PC e funziona a meraviglia.

Ma non Ŕ piu' pulito modificare la data con le funzioni PHP apposite senza usare una system?

iuzzolino
08-11-2007, 18:23
grazie mille... era proprio questo... io avevo provato ad editare sudo con visudo aggiungendo www-data ALL=(ALL) ALL ma non funzionava... evidentemente perchŔ mi chiedeva la password e non potevo comunicargliela. Facendo come hai detto ha funzionato al primo colpo ;)

Grazie ancora

Loading