diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-04-06 02:20:11 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-04-06 14:46:13 +0900 |
commit | e5ddfe3ec586c9ab174d39f4b6202155d92d24e4 (patch) | |
tree | ac2a487962f2978eee3f43db8669157ab26b3d43 /src/udev/udev-node.c | |
parent | a782f2a3fc4889ad7cca0a8fc77a5b0e4d5ed378 (diff) | |
download | systemd-e5ddfe3ec586c9ab174d39f4b6202155d92d24e4.tar.gz |
udev: upgrade mode in udev_node_apply_permissions_impl()
Diffstat (limited to 'src/udev/udev-node.c')
-rw-r--r-- | src/udev/udev-node.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c index 83d3242a25..493feffe00 100644 --- a/src/udev/udev-node.c +++ b/src/udev/udev-node.c @@ -610,6 +610,10 @@ static int udev_node_apply_permissions_impl( if (fstat(node_fd, &stats) < 0) return log_device_debug_errno(dev, errno, "cannot stat() node %s: %m", devnode); + /* If group is set, but mode is not set, "upgrade" mode for the group. */ + if (mode == MODE_INVALID && gid_is_valid(gid) && gid > 0) + mode = 0660; + apply_mode = mode != MODE_INVALID && (stats.st_mode & 0777) != (mode & 0777); apply_uid = uid_is_valid(uid) && stats.st_uid != uid; apply_gid = gid_is_valid(gid) && stats.st_gid != gid; |