01. december 2008 - 14:51
Der er
2 kommentarer og
1 løsning
Filer får serverens rettigheder når de gemmes
hej
jeg er ikke helt sikker på hvad der sker, men når jeg gemmer en fil med $fh = fopen("test.txt", 'w') gemmes filen med webserverens bruger go gruppe - fx. "httpd:httpd"
Hvordan laver jeg det, så det er ftp-brugeren og tilhørende gruppe der ejer filen
fx: torben:torben
/Torben
01. december 2008 - 16:11
#2
jeg har en fil som har fået webserverens user:group da jeg gemte den fra et php script. Nu kan jeg ikke rette i filen længere fordi jeg ikke længere er "ejer" af filen.
Jeg har prøvet med chmod() chown() og chgrp() men det viker ikke.
Jeg har prøvet følgende script til at rette op på fejlene...
<?php
function chmod_R($path, $filemode, $owner) {
if (!is_dir($path))
return chmod($path, $filemode);
$dh = opendir($path);
while (($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..') {
$fullpath = $path.'/'.$file;
if(is_link($fullpath))
return FALSE;
elseif(!is_dir($fullpath))
if (!chmod($fullpath, $filemode))
return FALSE;
elseif(!chmod_R($fullpath, $filemode))
return FALSE;
}
}
closedir($dh);
if(chmod($path, $filemode)){
return TRUE;
chown($path, $owner );
chgrp($path, $owner);
}
else
return FALSE;
}
$path = $_SERVER["DOCUMENT_ROOT"]."/testfolder";
chmod_R($path,777,"torben");
// Check the result
$stat = stat($path);
print "<pre>";
print "<h1>$path</h1>";
print_r(posix_getpwuid($stat['uid']));
print "</pre>";
?>