Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    permessi 0777 su creazione cartelle e file

    ciao a tutti!
    Ho un problemone su l'upload di file su un servizio ticket!
    Allora partiamo col dire che ho creato la cartella root "allegati" dandogli tutti i permessi (0777)
    ora che succede? accade che quando vado ad allegare un file al ticketche sto creando, mi viene creata all'interno della cartella root una nuova cartella chiamata "codice_$id" in modo che utilizzerò quel percorso per tutti i successivi allegati riguardanti quel determinato ticket.
    quindi all'interno di essa mi troverò diversi file che allego di volta in volta.
    Il problema sta nel creare questa directory!! infatti nonostante imosto i permessi a 0777 non mi vengono confermati tutti e il successivo passo del codice cioè il move_uploaded_file non viene eseguito ritornando un warning che dice:
    Codice PHP:
    Warningmove_uploaded_file(): SAFE MODE Restriction in effectThe script whose uid is 601 is not allowed to access /"percorse del server..."/htdocs/ticket/allegati/codice_3 owned by uid 48 in /"percorse del server..."/htdocs/ticket/functions.inc.php on line 157 
    ora posto il codice e indico la riga 157

    Codice PHP:
    ///////////////////////////////////////////////////////
    //    Funzione che aggiunge un allegato al database
    ///////////////////////////////////////////////////////

    function add_allegato_ticket($wfile,$path_allegato,$utente)

    {
    //seleziono tutto dalla tabella deiticket
    $query mysql_query("SELECT * FROM $GLOBALS[mysql_prefix]ticket where owner='$utente' order by id desc"); 
    //prendo l'id dell'ultimo ticket inserito
    //$id_ticket=mysql_insert_id();
    $row mysql_fetch_array($query);
    $id_ticket$row[id];
    //echo "$id_ticket";
    $query1 mysql_query("SELECT * FROM $GLOBALS[mysql_prefix]ticket WHERE id='$id_ticket'") or do_error('add_allegato($query1)::mysql_query()''mysql query failed'mysql_error());
    $record=mysql_fetch_array($query1);
    $id=$record['0']; //campo id nella tabella ticket
    $guest=$record['8']; //campo id_utente nella tabella ticket
    $query2 mysql_query("SELECT * FROM $GLOBALS[mysql_prefix]user WHERE id='$guest'"); 
    $record1=mysql_fetch_array($query2);
    $guest2=$record1['3']; //campo nome guest (corrispondente all' id_utente della tabella ticket) nella tabella user
    //echo $guest2;
    //utilizzo questa funzione per ricavarmi l'estensione del file
    $c_array explode("/",$path_allegato);
    // estraggo l'ultimo valore  --> estensione del file
    $path array_pop($c_array);
    //creo una cartella nominata con il nome "codice.id del ticket"!!!!

    mkdir ("allegati/codice_".$id_ticket0777);

    //memorizzo il percorso (cartella con il nome "codice.id ticket" e in esso "guest_id_ticket.estensione --> .$guest2.$id."."

    $filename="allegati/codice_$id_ticket/".$path;

    $query4  "INSERT INTO $GLOBALS[mysql_prefix]allegati values ('','$filename','$id','0')";
    $result mysql_query($query4) or do_error("add_allegato($filename,$id,$tipo)"'mysql query failed'mysql_error());
    $query5 "UPDATE $GLOBALS[mysql_prefix]ticket SET allegato='1' WHERE id='$id'";
            
    $result mysql_query($query5) or do_error('edit.php::update_ticket''mysql_query() failed'mysql_error);
    move_uploaded_file($wfile,$filename); // <--- riga 157

    Come si risolve il dunque?
    è un problema di permessi credi, in quanto dal pannello ftp vedo che i permessi della cartella codice_$id che ho creato sono diversi da quelli della root.
    come posso risolvere?
    P.S. è fondamentale impostarli a 777 in quanto successivamente questi file possono essere modificati, cancellati o sovrascritti!quindi devo poter accedere ad essi senza restrizioni

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Il problema sta nel creare questa directory!! infatti nonostante imosto i permessi a 0777 non mi vengono confermati
    Cosa intendi con non mi vengono confermati?
    Cioè rimangono come erano prima?

    Se cosi fosse dipende dai permessi di operare che ti ha lasciato chi amministra il server.

    A quel punto l'unica cosa da fare è sentire il responsabile dell'hosting.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    il server su cui gira è il mio.
    quindi ho piena possibilità di accedere a tutte le cartellee di impostare i privilegi
    infatti alla cartella allegati ho impostato i privilegi da remoto, ma purtroppo non posso fare la stessa cosa con le cartelle al suo interno in quanto vengono create di volta in volta e al loro interno vengono inseriti i file all'inserimento di un nuovo ticket di risposta all'originale il quale ha creato la cartella codice_$id.
    Spero di essermi spiegato un pò mejo

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    I permessi con cui viene creata la cartella dipendono dall'umask impostato sul server (cioè i permessi di default).

    Secondo me il modo migliore di operare (visto che ne hai i diritti) è di andare a cercare il pezzo di codice che crea la directory, e aggiungere subito dopo un "chmod 777".

    Comunque non capisco perchè non debba andare, perchè se l'utente con cui gira il web server crea una directory sicuramente avrà almeno lui i diritti di scriverci dentro...

    Se proprio sicuro che il problema sia quello?

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    Cosa intendi con non mi vengono confermati?
    Cioè rimangono come erano prima?
    non vengono confermati in quanto quando poi vadoa fare l'upload del file mi dà l'errore dove dice permesso negato, e lo posso vedere dal pannello ftp nel quale mi evidenzia i permessi dati alla nuova cartella ora ti dico in dettaglio:

    alla cartella root "allegati" ho dato come attributi: -rwxrwxrwx,
    mentre le directoryc he vengono create al suo interno prednono come attributi: -rwxr-xr-x , cioè non viene impostata la modalità di scrittura al loro interno!
    ho letto da qualche parte qua che per sicurezza è una impostazione del php che tende a nascondere una parte di priorità, paria 022 infatti gli attributi sono impostati come se il privilegio di quella cartella è 0755.
    Idea a riguardo?

    per la seconda domanda credo di aver risposto con questa sopra, in quanto prima non ci sono attributi in quanto non esiste la directory "codice_"$id

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    aspè sono rimasto indietro di una risposta

    allora ti spiego! chi va a fare l'upload del file non ha i miei stessi privilegi, in quanto saranno persone che richiedono un help al sottoscritto per alcuni problemi (pensa in che mani sono), e quindi i loro privilegi non saranno mai al max, per quetso devo impostare i privilegi alla cartella che creo! ma dato che la cratella di root cioè allegati è imostata con tutti i permessi non vedo il motivo del non riuscire ad impostare gli stessi attributi anche alle sue sottodirectory.

    Cmq ho provato anche impostando una volta creata la directory codice_$id ad impostare i permessi manualmente, ma non va lo stesso! non riesco a cambiarli una volta creata, ammen che non vado da remoto! neanche attraverso l'ftp posso cambiarli

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    ho fatto come mi hai consigliato e funziona... o perlomeno ora imposta i privilegi correttamente!! infatti ora sono come quellid ella cartella di root, però rimane sempre il warning e non allega il file all'interno della cartella appena creata!
    non lo allega neanche forzando la cartella su una creata precedentemente, magari era un errore di successione di operazioni ma non funge uguale! ma porca loca..in locale mi andava che era uno spettacolo!! è la prima votla che mi dà questo problema! mannaggia

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    A questo punto non so + cosa pensare... prima credevo che era problema di permessi, ma ora che sono riuscito grazie al tuo consiglio ad impostare gli attributi a 0777 non effettua lo stesso l'update! mi da sempre errore lo stesso! Non è che cè un errore nel codice? aspè te lo posto magari sai risolvere la ima svista
    Codice PHP:
    mkdir ("allegati/codice_".$id_ticket0777);
    chmod ("allegati/codice_".$id_ticket0777); //<-- come mi avevi detto!!

    $filename="allegati/codice_".$id_ticket."/".$path;    //$path è il nome del file

    move_uploaded_file($wfile,$filename); //<-- riga 151 
    e questo l'errore che continua a darmi

    Codice PHP:
    move_uploaded_file(): SAFE MODE Restriction in effectThe script whose uid is 601 is not allowed to access /... /htdocs/ticket/allegati/codice_5 owned by uid 48 in /...htdocs/ticket/functions.inc.php on line 151 

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    ma porca di una miseria... ma perche se i permessi sia per la root che per la directory creata sono identici... nella prima mi fa l'upload del file mentre se lo faccio nella seconda mi da errore?? non riesco a capire.. eppure il metodo è lo stesso!! mi sapete dire come passte i valori ad una stringa da richiamre in una funzione? io faccio così:
    questo è come faccio per mandarlo nella directory appena creata

    se lo mando nella root va benissimo e non da nessun problema:

    Codice PHP:
    $filename="allegati/".$path;
    move_uploaded_file($wfile,$filename); 
    mentre se lo mando nella cartella appena creata mi da errore:

    Codice PHP:
    $filename="allegati/codice_$id_ticket/".$path;
    //oppure sempre per mandarlo enlla cartella identica faccio così:
    $filename="allegati/codice_".$id_ticket."/".$path;
    move_uploaded_file($wfile,$filename); 
    e mi da il warning:

    Codice PHP:
    Warningmove_uploaded_file(): SAFE MODE Restriction in effectThe script whose uid is 601 is not allowed to access .../htdocs/ticket/allegati/codice_7 owned by uid 48 in .../htdocs/ticket/functions.inc.php on line 154 
    perchè?? pls un consiglio??


  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    EVVAI!!!

    mamma mia che fatica... però ho risolto...
    non potendo modificare il safe mode sul mio server perchè avrei impostato quel serviziop per tutti ho risolto introducendo un bel file all'interno della cartella custom del sito in questione!! e qosì solo per quello ho disattivato il safe mode!! ora va alla grande!! un grazie a gianiaz!! molto gentile!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.