mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-20 02:38:43 +00:00
zfs allow/unallow should work with numeric uid/gid
And that should work even (especially) if there is no matching user or group name. This change allows to see and modify delegations for deleted groups and users. The change is originally by Xin Li. illumos report: https://www.illumos.org/issues/6037 OpenZFS (ZoL) PR: https://github.com/openzfs/zfs/pull/10280 Obtained from: delphij MFC after: 2 weeks
This commit is contained in:
parent
051fc58cb3
commit
54904c38f8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=360956
@ -4696,6 +4696,14 @@ parse_fs_perm(fs_perm_t *fsperm, nvlist_t *nvl)
|
||||
(void) strlcpy(
|
||||
node->who_perm.who_ug_name,
|
||||
nice_name, 256);
|
||||
else {
|
||||
/* User or group unknown */
|
||||
(void) snprintf(
|
||||
node->who_perm.who_ug_name,
|
||||
sizeof (
|
||||
node->who_perm.who_ug_name),
|
||||
"(unknown: %d)", rid);
|
||||
}
|
||||
}
|
||||
|
||||
uu_avl_insert(avl, node, idx);
|
||||
@ -5194,9 +5202,9 @@ construct_fsacl_list(boolean_t un, struct allow_opts *opts, nvlist_t **nvlp)
|
||||
|
||||
if (p != NULL)
|
||||
rid = p->pw_uid;
|
||||
else {
|
||||
else if (*endch != '\0') {
|
||||
(void) snprintf(errbuf, 256, gettext(
|
||||
"invalid user %s"), curr);
|
||||
"invalid user %s\n"), curr);
|
||||
allow_usage(un, B_TRUE, errbuf);
|
||||
}
|
||||
} else if (opts->group) {
|
||||
@ -5208,9 +5216,9 @@ construct_fsacl_list(boolean_t un, struct allow_opts *opts, nvlist_t **nvlp)
|
||||
|
||||
if (g != NULL)
|
||||
rid = g->gr_gid;
|
||||
else {
|
||||
else if (*endch != '\0') {
|
||||
(void) snprintf(errbuf, 256, gettext(
|
||||
"invalid group %s"), curr);
|
||||
"invalid group %s\n"), curr);
|
||||
allow_usage(un, B_TRUE, errbuf);
|
||||
}
|
||||
} else {
|
||||
@ -5236,7 +5244,7 @@ construct_fsacl_list(boolean_t un, struct allow_opts *opts, nvlist_t **nvlp)
|
||||
rid = g->gr_gid;
|
||||
} else {
|
||||
(void) snprintf(errbuf, 256, gettext(
|
||||
"invalid user/group %s"), curr);
|
||||
"invalid user/group %s\n"), curr);
|
||||
allow_usage(un, B_TRUE, errbuf);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user