summaryrefslogtreecommitdiff
path: root/lisp/net
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/net')
-rw-r--r--lisp/net/tramp.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 426785dd9a4..50fbaed01e0 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5008,7 +5008,11 @@ coding system might not be determined. This function repairs it."
(setq buffer-file-name filename)
(setq buffer-read-only (not (file-writable-p filename)))
(set-visited-file-modtime)
- (set-buffer-modified-p nil))
+ (set-buffer-modified-p nil)
+ ;; For root, preserve owner and group when editing files.
+ (when (string-equal (file-remote-p filename 'user) "root")
+ (set (make-local-variable 'backup-by-copying-when-mismatch) t)
+ (put 'backup-by-copying-when-mismatch 'permanent-local t)))
(when (and (stringp local-copy)
(or remote-copy (null tramp-temp-buffer-file-name)))
(delete-file local-copy))