diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2015-12-11 10:48:19 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2015-12-11 11:22:25 -0500 |
commit | 4c3f97bb8ea409651491113a43a6d2b9d752d1e7 (patch) | |
tree | 307bf871a0e69839a011ac4ca21370ad1d0da35e | |
parent | 76f8ce8ce02868490ddfc5686bd48562fa73eab1 (diff) | |
download | nfs-utils-4c3f97bb8ea409651491113a43a6d2b9d752d1e7.tar.gz nfs-utils-4c3f97bb8ea409651491113a43a6d2b9d752d1e7.tar.xz nfs-utils-4c3f97bb8ea409651491113a43a6d2b9d752d1e7.zip |
nfsidmap: keyring_clear() should succeed if id_resolver keyring not found
If the id_resolver keyring doesn't exist, the kernel has no cached
idmap information to expunge. AFAIK it's not an error.
If nfsidmap is run by a non-privileged user, the id_resolver keyring
is never visible. IMO that should be reported, but the error message
should report the privilege problem, not the missing keyring.
Reported-by: Amy Shi <amy.shi@oracle.com>
Fixes: 69aa69e7de80 ('nfsidmap: Allow keys to be cleared from the ')
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r-- | utils/nfsidmap/nfsidmap.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/utils/nfsidmap/nfsidmap.c b/utils/nfsidmap/nfsidmap.c index 507193b..15b4a51 100644 --- a/utils/nfsidmap/nfsidmap.c +++ b/utils/nfsidmap/nfsidmap.c @@ -80,8 +80,9 @@ static int keyring_clear(const char *keyring) key = find_key_by_type_and_desc("keyring", keyring, 0); if (key == -1) { - xlog_err("'%s' keyring was not found.", keyring); - return EXIT_FAILURE; + if (verbose) + xlog_warn("'%s' keyring was not found.", keyring); + return EXIT_SUCCESS; } if (keyctl_clear(key) < 0) { @@ -89,10 +90,9 @@ static int keyring_clear(const char *keyring) (unsigned int)key); return EXIT_FAILURE; } - + if (verbose) xlog_warn("'%s' cleared", keyring); - return EXIT_SUCCESS; } @@ -404,6 +404,11 @@ int main(int argc, char **argv) } } + if (geteuid() != 0) { + xlog_err("Must be run as root."); + return EXIT_FAILURE; + } + if ((rc = nfs4_init_name_mapping(PATH_IDMAPDCONF))) { xlog_errno(rc, "Unable to create name to user id mappings."); return EXIT_FAILURE; |