diff --git a/tinyfilemanager.php b/tinyfilemanager.php
index 2d7ab363..ca4428b4 100644
--- a/tinyfilemanager.php
+++ b/tinyfilemanager.php
@@ -142,6 +142,10 @@
'::' // non-routable meta ipv6
);
+// default mode
+$filemode = 0644;
+$dirmode = 0755;
+
// extension => language for advanced editor
$ext_language = array(
'js' => 'javascript',
@@ -677,6 +681,9 @@ function get_file_path()
}
}
+ if ($success) {
+ $success = chmod($temp_file, $filemode);
+ }
if ($success) {
$success = rename($temp_file, strtok(get_file_path(), '?'));
}
@@ -730,6 +737,7 @@ function get_file_path()
if (!file_exists($path . '/' . $new)) {
if (fm_is_valid_ext($new)) {
@fopen($path . '/' . $new, 'w') or die('Cannot open file: ' . $new);
+ chmod($path . '/' . $new, $filemode);
fm_set_msg(sprintf(lng('File') . ' %s ' . lng('Created'), fm_enc($new)));
} else {
fm_set_msg(lng('File extension is not allowed'), 'error');
@@ -739,6 +747,7 @@ function get_file_path()
}
} else {
if (fm_mkdir($path . '/' . $new, false) === true) {
+ chmod($path . '/' . $new, $dirmode);
fm_set_msg(sprintf(lng('Folder') . ' %s ' . lng('Created'), $new));
} elseif (fm_mkdir($path . '/' . $new, false) === $path . '/' . $new) {
fm_set_msg(sprintf(lng('Folder') . ' %s ' . lng('already exists'), fm_enc($new)), 'alert');
@@ -2518,6 +2527,10 @@ function fm_rcopy($path, $dest, $upd = true, $force = true)
if (!fm_mkdir($dest, $force)) {
return false;
}
+ $mode = fileperms($path);
+ if ($mode !== false) {
+ chmod($dest, $mode);
+ }
$objects = array_diff(scandir($path), ['.', '..']);
@@ -2569,6 +2582,11 @@ function fm_copy($f1, $f2, $upd)
if ($time2 >= $time1 && $upd) {
return false;
}
+ } else{
+ $mode = fileperms($f1);
+ if ($mode !== false) {
+ chmod($f2, $mode);
+ }
}
$ok = copy($f1, $f2);
if ($ok) {