aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorStephen Gildea2019-12-20 09:15:13 -0800
committerStephen Gildea2019-12-21 10:51:10 -0800
commit678a71ea2d044f19f75e3f45c930c5e3b707e3dc (patch)
treee62c41f8970ff093717954d300f7176b8be2058c /lisp
parent59ce7609cb383893ac55921589051993c388c6cc (diff)
downloademacs-678a71ea2d044f19f75e3f45c930c5e3b707e3dc.tar.gz
emacs-678a71ea2d044f19f75e3f45c930c5e3b707e3dc.zip
backup-by-copying-when-privileged-mismatch applies to file gid, too.
* lisp/files.el (backup-by-copying-when-privileged-mismatch): In addition to checking the file uid, a second test is added: if the file gid is not greater than backup-by-copying-when-privileged-mismatch, backup-by-copying-when-mismatch will also be forced on. * doc/emacs/files.texi, doc/lispref/backups.texi: Updated documentation. Also fixed a typo in the Emacs reference manual, changing "higher" to "no greater" so that the limit is no longer documented reversed.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/files.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/files.el b/lisp/files.el
index a384e7136e8..96f1e8d47e7 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -134,10 +134,11 @@ This variable is relevant only if `backup-by-copying' is nil."
134(defcustom backup-by-copying-when-privileged-mismatch 200 134(defcustom backup-by-copying-when-privileged-mismatch 200
135 "Non-nil means create backups by copying to preserve a privileged owner. 135 "Non-nil means create backups by copying to preserve a privileged owner.
136Renaming may still be used (subject to control of other variables) 136Renaming may still be used (subject to control of other variables)
137when it would not result in changing the owner of the file or if the owner 137when it would not result in changing the owner of the file or if the
138has a user id greater than the value of this variable. This is useful 138user id and group id of the file are both greater than the value of
139when low-numbered uid's are used for special system users (such as root) 139this variable. This is useful when low-numbered uid's and gid's are
140that must maintain ownership of certain files. 140used for special system users (such as root) that must maintain
141ownership of certain files.
141This variable is relevant only if `backup-by-copying' and 142This variable is relevant only if `backup-by-copying' and
142`backup-by-copying-when-mismatch' are nil." 143`backup-by-copying-when-mismatch' are nil."
143 :type '(choice (const nil) integer) 144 :type '(choice (const nil) integer)
@@ -4634,8 +4635,10 @@ BACKUPNAME is the backup file name, which is the old file renamed."
4634 (let ((attr (file-attributes 4635 (let ((attr (file-attributes
4635 real-file-name 4636 real-file-name
4636 'integer))) 4637 'integer)))
4637 (<= (file-attribute-user-id attr) 4638 (or (<= (file-attribute-user-id attr)
4638 copy-when-priv-mismatch)))) 4639 copy-when-priv-mismatch)
4640 (<= (file-attribute-group-id attr)
4641 copy-when-priv-mismatch)))))
4639 (not (file-ownership-preserved-p real-file-name 4642 (not (file-ownership-preserved-p real-file-name
4640 t))))) 4643 t)))))
4641 setmodes) 4644 setmodes)