Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 May 2020 09:04:57 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r360956 - head/cddl/contrib/opensolaris/cmd/zfs
Message-ID:  <202005120904.04C94veg074015@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Tue May 12 09:04:57 2020
New Revision: 360956
URL: https://svnweb.freebsd.org/changeset/base/360956

Log:
  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

Modified:
  head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c

Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Tue May 12 04:34:26 2020	(r360955)
+++ head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Tue May 12 09:04:57 2020	(r360956)
@@ -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 *
 
 				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 *
 
 				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 *
 					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);
 				}
 			}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202005120904.04C94veg074015>