• User Newbie

    chmod/chown

    Ciao a tutti, so che è una questione trita e ritrita ma nonostante abbia letto mezza internet [1] non riesco a venirne fuori.

    $filename = '/media/hdb1/temp/Document.xls';
    $user_name ='daemon';
    chown($filename, $user_name);
    chmod("/media/hdb1/temp/Document.xls", 0777);
    
    if (($handle = fopen("/media/hdb1/temp/Document.xls", "r")) !== FALSE) { 
    ......
    }
    
    

    I comandi danno l'errore: Operation not permitted. Ovviamente quello relativo a fopen() è dovuto agli altri due che non hanno funzionato

    I permessi del file sono:-rw------- 1 root root 11264 Oct 31 16:36 Document.xls
    Apache ha daemon come User e Group
    In php.ini: safe_mode = Off

    Any idea???

    Grazie in anticipo

    Stefano


  • User Newbie

    Solo chi ha il write access ad un file può eseguire chmod (e chown) sul file stesso.
    In questo caso solo root ha questa possibilità percui qualsiasi altro utente (es. daemon) non può operare sul file.
    Dovresti far girare apache come root, cosa che aprirebbe ad un ventaglio pressoché infinito di problematiche.

    La soluzione migliore, a mio parere, è quella di cambiare la umask o uid,gid con cui viene montato il filesystem in /media/hdb1 (dando per scontato, vista la sua collocazione, che sia una chiavetta, un drive esterno, o simili). Con il comando man 8 mount potrai visionare tutte le informazioni necessarie.


  • Super User

    Grazie a Dio ti esce fuori Operation not permitted!

    Quel file appartiene a root, se PHP è un modulo di Apache che ha come user e group daemon come puoi pensare che possa riuscire a cambiare i permessi con successo?

    Cambia i permessi da shell!