tutto ok..ho trovato il problema..
alla fine era una cosa banale,
il codice corretto è il seguente..
echo substr(sprintf('%o', fileperms('../public/temp')), -4);
echo copy("../public/logo.jpg","../public/temp/logo.jpg");
nel caso dovesse servire a qualkuno!!!