Tuesday, August 3, 2010

Recursively change directory and file permissions

Recursive php script that updates directories and files permissions.
Directory permissions: 755
File permissions: 644

File update-permissions.php:

ini_set('display_errors', 1);

$dir = '/home/user/folder';

update_perms($dir);

function update_perms($dir, $_dir_perms = '755', $_file_perms = '644') {
    echo "\n" . $dir . '...';
    if(is_dir($dir)) {
        shell_exec("chmod $_dir_perms $dir");
        echo 'dir update';
        $files = scandir($dir);
        unset($files[0]);
        unset($files[1]);
        #print_r($files);exit;
        foreach($files as $file) {
            update_perms($dir . '/' . $file);
        }
    } elseif(is_file($dir)) {
        shell_exec("chmod $_file_perms $dir");
        echo 'file update';
    }
}

No comments: