diff --git a/pyqode/core/managers/file.py b/pyqode/core/managers/file.py
index <HASH>..<HASH> 100644
--- a/pyqode/core/managers/file.py
+++ b/pyqode/core/managers/file.py
@@ -375,6 +375,13 @@ class FileManager(Manager):
             encoding = self._encoding
         self.saving = True
         self.editor.text_saving.emit(str(path))
+
+        # get file persmission on linux
+        try:
+            st_mode = os.stat(path).st_mode
+        except (ImportError, TypeError, AttributeError):
+            st_mode = None
+
         # perform a safe save: we first save to a temporary file, if the save
         # succeeded we just rename the temporary file to the final file name
         # and remove it.
@@ -412,6 +419,12 @@ class FileManager(Manager):
             _logger().debug('file saved: %s', path)
             self._check_for_readonly()
 
+            # restore file permission
+            try:
+                os.chmod(path, st_mode)
+            except (ImportError, TypeError, AttributeError):
+                pass
+
     def close(self, clear=True):
         """
         Close the file open in the editor:
Fix file permission lost on save on posix