summaryrefslogtreecommitdiffstats
path: root/utils
Commit message (Collapse)AuthorAgeFilesLines
...
* gssd: do a more thorough change of identity after forkingJeff Layton2013-10-211-16/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The part of process_krb5_upcall that handles non-machine user creds first tries to query GSSAPI for credentials. If that fails, it then falls back to trawling through likely credcache locations to find them and then points $KRB5CCNAME at it before proceeding. There are a number of bugs in this code that this patch attempts to address. The code that queries GSSAPI for credentials does it as root which almost universally fails to do anything useful unless we happen to be looking for non-machine root creds. Because of this, gssd almost always falls back to having to search for credcaches "manually". The code that handles credential switching is in create_auth_rpc_client, so it's too late to be of any use here. Worse yet, for historical reasons the MIT krb5 authors used %{uid} in the default credcache locations which translates to the real uid. Thus switching the fsuid or even euid is insufficient. You must switch the real uid in order to be able to find the proper credcache in most cases. This patch moves the credential switching to occur much earlier in the process and has it do a much more thorough job of it. It first drops all supplimentary groups, then determines a gid to use and switches the gids and uids to the correct ones. If it can't determine the correct gid to use, it then tries to look up the one for "nobody" and uses that. Once the credentials are switched, the forked child now no longer tries to change them back. It does the downcall with the new credentials and just exits when it's done. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: have process_krb5_upcall fork before handling upcallJeff Layton2013-10-211-1/+23
| | | | | | | | | | | | | | | | | | | Most krb5 installations use credcache locations that contain %{uid}, which expands to the real UID of the current process. In order for GSSAPI to find those properly, we need to be able to switch the real UID of the process to the designated one. That however, opens the door to allowing gssd to be killed or reniced during the window where we've switched credentials. To combat this, change gssd to fork before trying to handle each upcall. The child will do the work to establish the context and the parent task will just wait for it to exit. It's still possible for the child to be killed or reniced, but that would only affect a single upcall instead of the entire daemon. Also, If the process is killed prematurely, then log an error to tip off the admin that there was a problem. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Add -s option.Tony Asleson2013-10-212-10/+20
| | | | | | | | Adds '-s' option which outputs the current exports in a format suitable for /etc/exports. Signed-off-by: Tony Asleson <tasleson@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsmount.conf: remove duplicate 'timeo' from the parsing stringSteve Dickson2013-10-211-0/+10
| | | | | | | | When the 'timeo' option is specified in multiple sections of the nfsmount.conf file, each instance is added to the parsing string. This patch make the first instance override any others. Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsmount.conf: Remove duplicate 'bg' and 'fg' from parsing string.Steve Dickson2013-10-211-0/+25
| | | | | | | | | When the 'Background' and/or 'Foreground' options are set in multiple sections of the nfsmount.conf file, each instance gets added to the parsing string. This patch makes the first instance of either option override the any others. Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: remove gss_clnt_send_err and gss_destroy_credsJeff Layton2013-10-213-126/+1
| | | | | | | | | | | | | | | | | | | | As Bruce recently pointed out, gss_clnt_send_err basically does an unsolicited downcall into the kernel to try and destroy a valid GSS context. That has been broken however since this kernel commit: commit 3b68aaeaf54065e5c44583a1d33ffb7793953ba4 Author: Trond Myklebust <Trond.Myklebust@netapp.com> Date: Thu Jun 7 10:14:15 2007 -0400 SUNRPC: Always match an upcall message in gss_pipe_downcall() Downcalls that don't match an in-progress upcall just get back an -ENOENT error and don't actually do anything. Remove these tools since they've been useless for the last 6 years. Reported-by: "J. Bruce Fields" <bfields@fieldses.org> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: clean up exports.d discussionJ. Bruce Fields2013-09-301-10/+4
| | | | | | | | | From: "J. Bruce Fields" <bfields@redhat.com> The syntax here is a little convoluted. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: test_export shouldn't use invalid uid/gidJ. Bruce Fields2013-09-241-1/+1
| | | | | | | | | | | | | From: "J. Bruce Fields" <bfields@redhat.com> Some newer kernels are rejecting -1 uid/gid. Actually, worse--they're silently ignoring any attempt to cache such exports, thus preventing test_export from getting back the errors it needs. And -1 wasn't a good choice anyway. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: don't use tgtname to find our keytabJ. Bruce Fields2013-09-241-6/+9
| | | | | | | | | | | | | | | | From: "J. Bruce Fields" <bfields@redhat.com> The tgtname is of the form service@hostname. It's not a hostname, and attempting to look it up here just causes failure of any upcall with a "target=" field (currently, any upcall on behalf of an nfsv4.0 callback). I think the theory was that knowning that target= name might help pick the right keytab, but I don't really know if that's helpful. For now, just stop trying to do this. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: don't use tgtname to find our keytabJ. Bruce Fields2013-09-243-11/+5
| | | | | | | | | | | | | | | | From: "J. Bruce Fields" <bfields@redhat.com> The tgtname is of the form service@hostname. It's not a hostname, and attempting to look it up here just causes failure of any upcall with a "target=" field (currently, any upcall on behalf of an nfsv4.0 callback). I think the theory was that knowning that target= name might help pick the right keytab, but I don't really know if that's helpful. For now, just stop trying to do this. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: fix strncmp bug causing client removalsJ. Bruce Fields2013-09-241-1/+1
| | | | | | | | | | | | | | | | From: "J. Bruce Fields" <bfields@redhat.com> Both dirname and pdir are null-terminated strings, so there's no reason I can see for the strncmp. And this gives the wrong result when comparing the "nfsd" and "nfsd4_cb" directories! The results were callback clients being removed immediately after creation, when lack of a client with the corresponding name under "nfsd" lead gssd to believe it had disappeared from "nfsd4_cb". Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exports.man: quote command to preserve spaceJim Rees2013-09-051-1/+1
| | | | | Signed-off-by: Jim Rees <rees@umich.edu> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: suppress error message if rpc_pipefs dir disappears.NeilBrown2013-09-051-2/+3
| | | | | | | | | | | | | | | | | | | | It is possible for a race to cause a name to appear when an rpc_pipefs dir is scanned but to no longer be present when we try to open it. So if the error is ENOENT, don't complain. This is similar to commit 5ac9bcfd820f09af4d3f87f1f7346d896f70bc9a Author: David Jeffery <djeffery@redhat.com> Date: Wed Jan 16 15:21:55 2013 -0500 rpc.idmapd: Ignore open failures in dirscancb() which addressed a similar issue in idmapd. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: improve handling of bg, fg, and sloppy in nfsmount.confScott Mayhew2013-08-191-0/+11
| | | | | | | | | | | | | | | | | | This patch makes 2 small improvements to the parsing of the bg, fg, and sloppy mount options in nfsmount.conf. 1. "bg" and "fg" negate should each other. "Background=True" should mean "bg" and "Background=False" should mean "fg". The same applies to "Foreground". 2. Once we see "Sloppy=False" while parsing the configuration file we should ignore subsequent occurrences of the sloppy option. This will preserve the "right-most setting wins" behavior for the sloppy mount option. Acked-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Scott Mayhew <smayhew@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: dont pass options from configuration sections that are not relevantScott Mayhew2013-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | The nfsmount.conf file has the following format: [ section "arg" ] tag = value conf_get_tag_list() currently doesn't check the arg field so we wind up getting all the options that fall under a particular section value, instead of just the ones that match the specific "arg" field. As a result, we wind up passing options to the mount syscall from sections that aren't even relevant to the mount operation that is being performed. For example, if we have three different server sections, and each section has an Nfsvers tag, then the string we pass to the mount syscall will have two extra occurrences of the nfsvers option. Each option should appear at most 4 times -- once for the system section, once for the server-specific section, once for the mount-specific section, and once for the command line mount options. Acked-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Scott Mayhew <smayhew@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* rpc.idmapd: silence pointless EOF warningJ. Bruce Fields2013-08-191-4/+8
| | | | | | | | | | | | | | RH bz 831455 has a report that repeatedly mounting and unmounting over lo can hit this warning in the EOF case. I suspect that's just normal--I'm not sure of the details, but probably idmapd gets woken up to check for an upcall and then the upcall gets yanked away before idmapd gets a chance to read it. So just skip the warning in that case. I also can't see a reason to reopen. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* rpc.nfsd: Allow v4.2 server support with the -V optionSteve Dickson2013-08-192-10/+13
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* rpc.nfsd: No longer advertise NFS v2 support.Steve Dickson2013-08-191-1/+1
| | | | | | | | | Changed the default protocol versions that rpc.nfsd register with rpcbind to just 3 and 4. Version 2 can still be enabled with the '-V' flag, but it will not be on by default. Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: fixed typo in machine cred name.Doug Nazar2013-07-021-1/+1
| | | | | | | | | Commit 1c787f14 [gssd: scan for DIR: ccaches, too] changed the default prefix for the credential cache files. Update the check to ignore the machine credential file when running with -n (root ignores machine credentials). Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: don't give up on machine credential if hostname not available.NeilBrown2013-07-021-2/+6
| | | | | | | | | | | | krb5_util tries various different credential names in order to find the machine credential, not all of them use the full host name of the current host. So if getting the full host name fails, don't give up completely, still try the other options. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* Fix handling of preferred realm command line option.Maximilian Wilhelm2013-07-011-2/+10
| | | | | | | | | | The current implementation ignores any preferred realm specified on the command line. Fix this behaviour and make sure the preferred realm is used as first realm when trying to acquire a keytab entry Signed-off-by: Maximilian Wilhelm <max@rfc2324.org> Signed-off-by: Frederik Moellers <frederik.moellers@upb.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: remove redundant array size.NeilBrown2013-07-011-1/+1
| | | | | | | | | | | | When initialising an array there is no need to specify the size as the size is taken from the initialiser. Having the size there means that any change to the initialiser needs to change the size to and so is error-prone. So just remove the size. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsidmap: add default id_resolver.confLuk Claes2013-05-282-1/+3
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsdcltrack.man: drop autogenerated roffLuk Claes2013-05-281-114/+0
| | | | | | | | | | | The man page was generated, but this file is intended as the source to make modifications. So remove all generated comments and only leave what's needed and easily maintained manually without changing the appearance of the man page. Acked-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Fix recent fix to Avoid DNS reverse resolution in gssd.Signed-off-by: NeilBrown2013-05-282-13/+32
| | | | | | | | | | | | | | | | The final version for this fix that was committed inverted the test so makes no change in the important cases. The documentation didn't really help a naive user know when the new -D flag should be used. And the code (once fixed) avoided DNS resolution on non-qualified names too, which probably isn't a good idea. This patch fixes all three issues. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Remove unnecessary including of ctype.hSteve Dickson2013-05-071-1/+0
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: Fix is_subdirectory againNeilBrown2013-05-071-10/+14
| | | | | | | | | | | | | | | | | The problem was that is_subdirectory() would also succeed if the two directories were the same. This is needed for path_matches() which needs to see if the child is same-or-descendant. So this patch rearranges path_matches() to do the "are they the same" test itself and only bother with is_subdirectory() if it they are not the same. So now is_subdirectory() can be strict, and so can be usable for subexport(), which needs a strong 'in subdirectory - not the same' test. Acked-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* statd: exit if a statd is already runningWeston Andros Adamson2013-05-072-17/+7
| | | | | | | | Moves nfs_probe_statd from mount to nfs support lib to share with statd. Acked-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Weston Andros Adamson <dros@netapp.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs.man: Move nfsvers to "Options supported by all versions" sectionChris Vogan2013-05-071-12/+14
| | | | | | | | | After inclusion of NFSv4.1 it seems that now you can specify an NFSv4 mount with either "-tnfs4" or "-overs=4". This patch moves "nfsvers/vers" from "Options for NFS versions 2 and 3 only" to "Options supported by all versions". Signed-off-by: Steve Dickson <steved@redhat.com>
* Avoid DNS reverse resolution for server names (take 3)Simo Sorce2013-04-224-7/+41
| | | | | | | | | | | | | | A NFS client should be able to work properly even if the DNS Reverse record for the server is not set. This means a DNS lookup should not be done on server names at are passed to GSSAPI. This patch changes the default behavior to no longer do those types of lookups This change default behavior could negatively impact some current environments, so the -D option is also being added that will re-enable the DNS reverse looks on server names, which are passed to GSSAPI. Signed-off-by: Simo Sorce <simo@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* sm-notify: "-v hostname" doesn't work when IPV6_SUPPORT is enabledChuck Lever2013-04-221-1/+1
| | | | | | | | | | | | | | | | | | | | Marc Eshel reports that using the -v command line option on the sm-notify command stopped working after nfs-utils 1.2.2, when IPv6 support was added. If nfs-utils is built without IPv6 support, it still works. Marc specified a hostname with a single A record. smn_bind_address() must construct a bind address with the same family as the RPC socket's protocol family. Add an AI_V4MAPPED hint so an appropriate IPv6 bind address is constructed even if -v specifies an IPv4 presentation address, or a hostname with only IPv4 mappings. We still use an IPv4 bind address if IPv6 support is compiled out or the host does not support IPv6. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com> Cc: Marc Eshel <eshel@us.ibm.com>
* mount: No longer negotiate to v2Steve Dickson2013-04-222-8/+7
| | | | | | | | | This patch remove the ability of negotiating to the v2 protocol. Explicitly setting the version on the command line will be the only way to use v2. Signed-off-by: Steve Dickson <steved@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: fix exporting of "/" with sec= setting.NeilBrown2013-04-221-0/+1
| | | | | | | | | | | | | | | | Commit 91bb95f2689e84856ecdf6fac365489d36709cf9 4set_root: force "fsid=0" for all exports of '/' set NFSEXP_FSID for the export of "/" if nothing else had any fsid set, however it didn't also set the flag for all security flavours. So the kernel complains that the flags on the security flavours don't match and it rejects the export. So call fix_pseudoflavor_flags() in write_secinfo() to make sure that any fiddling that has been done to e_flags gets copied to e_secinfo. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Allow GSSAPI to try to acquire credentials first.Simo Sorce2013-04-223-26/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GSSAPI can be given a uid number as a special name, and then gss_acquire_cred() can use the name to try to find credentials for the user. Give GSSAPI a chance to do it on its own, then fallback to the classic method of trolling through the file system to find a credential cache. This patch uses a little know feature of GSSAPI that permits to acquire crdentials specifying the user's UID. Normally GSSAPI will simply perform a getpwuid() call and use the user name to generate a principal name and then see if it can find a TGT for that principal in the local ccache. This feature is vital to allow the GSS-Proxy to be able to initiate crdentials on behalf of rpc.gssd using client keytabs stored in the filsystem. GSS-Proxy works through an interposer-type plugin (new feature in MIT 1.11) that allows to intercept all GSSAPI requestes and relay them to a system daemon via a socket. This daemon (GSS-Proxy) then can perform operations on behalf of other applications with additional logic. In the rpc.gssd case the GSS-Proxy daemon allows applications running as system users to properly access krb5 protected shares by creating a credential cache on the fly when necessary. This way all applications that need access to krb5 protected shares do not need to be taught how to initiate crdentials on their own, nor they need to be wrapped in additional init scripts like k5start or use wasteful cronjobs to keep credentials fresh. All is needed is to drop a keytab with the right keys in a special location on the system and gss-proxy will do the rest. Signed-off-by: Simo Sorce <simo@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: Add the missing '$' in auth_unix_ip()Jose Castillo2013-04-221-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We found this problem because NFS clients to a RHEL6 NFS server were experiencing periods of ESTALE errors after being mounted and initially working successfully. Tests were run which snapshotted the nfs/sunrpc caches before and after the issue, and it was found that the '$' character at the beginning of the ID strings, used when in use_ipaddr mode, was getting lost: GOOD, while mount was working: nfsd 1.2.3.4 $1.2.3.4 BAD, after mount started returning ESTALE: nfsd 1.2.3.4 1.2.3.4 This would then cause the export checks to fail by passing '1.2.3.4' instead of '$1.2.3.4' up to rpc.mountd. The problem appears to be in the auth_unix_ip() function when renewing the auth.unix.ip cache entry. It would fail to add the '$' character back to the beginning of the string used for the domain string, breaking the use_ipaddr mode. Signed-off-by: Jose Castillo <jcastillo@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs(5): Update description of sec= mount optionChuck Lever2013-04-101-21/+23
| | | | | | | | | | | | Bryan recently added SECINFO support, and I've beefed up the NFSv3 MNT processing in kernel to do some security flavor negotiation. Thus the kernel can perform additional security flavor negotiation now. Update the description of the sec= mount option and the SECURITY CONSIDERATIONS section to reflect this change. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Fix double free when exporting lucid contextSimo Sorce2013-04-107-12/+12
| | | | | | | | | | | | | When using GSSAPI's gss_krb5_export_lucid_context the context passed into the function is actually deleted during the export (to avoid reuse as the context contains state that depends on its usage). Change the code to pass in a pointer to the context so that it can be properly NULLed if we are using the GSSAPI context and following calls to gss_delete_sec_context will not cause double free errors and segfaults. Signed-off-by: Simo Sorce <simo@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Fix segfault when using -R optionSimo Sorce2013-04-021-1/+1
| | | | | | | | The getopt string did not add : after the R option resulting in a sefgault whenever -R was used as optarg is NULL and it is dereferenced. Signed-off-by: Simo Sorce <simo@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Switch to use standard GSSAPI by defaultSimo Sorce2013-04-022-6/+16
| | | | | | | | | Make libgssglue configurable still but disabled by default. There is no reason to use libgssglue anymore, and modern gssapi supports all needed features for nfs-utils. Signed-off-by: Simo Sorce <simo@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsd: Add support for the -V and --nfs-version optional argumentsTrond Myklebust2013-03-252-3/+32
| | | | | | | | | | Add command line options to enable those NFS versions that are currently disabled by default. We choose to use the options '-V' and '--nfs-version' for compatibility with rpc.mountd. Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: regression in crossmountsSteve Dickson2013-03-251-1/+4
| | | | | | | | | | | | | | | | | | | commit 8e2fb3fc cause a regression in mount export that are on different local file system. Exports like (all on different filesystems) /home *(rw,fsid=0,crossmnt) /home/fs1 *(rw,crossmnt) /home/fs1/fs2/fs3 *(rw,nohide) and then a mount of the root 'mount /home /mnt' would end up mounting /home/fs1/fs2/fs3 not /home Reverting the logic of commit 8e2fb3fc until a better solution can be found for the original problem. Signed-off-by: Steve Dickson <steved@redhat.com>
* NFS man page patch that moves nordirplus/rdirplusChris Vogan2013-03-251-7/+7
| | | | | | | | | NFS man page patch that moves nordirplus/rdirplus from "Options for NFS versions 2 and 3 only" to "Options supported by all versions". Its a better fit here since this option is also needed for some NFSv4 servers. Signed-off-by: Chris Vogan <cvogan@gmail.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: gethostname(3) returns zero or -1, not an errnoChuck Lever2013-03-251-2/+2
| | | | | | | | | | According to "man gethostname," gssd is handling the return value of gethostname(3) incorrectly. It looks like other gethostname(3) call sites in nfs-utils are already correct. Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Fix whitespace nitsChuck Lever2013-03-251-6/+6
| | | | | | Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Clean up gssd_setup_krb5_user_gss_ccache()Chuck Lever2013-03-251-8/+8
| | | | | | | | | | | | | | | | | | | | | | | Remove a contradictory portion of the block comment documenting gssd_find_existing_krb5_ccache(). This should have been removed by commit 289ad31e, which reversed the meaning of the function's return values. Note that, in user space, typically errno's are positive. But here we follow the kernel convention of using negative values to return error codes. Make the documenting comments explicit about the sign of an error return -- it will never be positive in the case of an error. And a nit: At the last return statement in gssd_setup_krb5_user_gss_ccache(), "err" always contains zero, as far as I can tell. Make it explicit (to human readers) that when execution reaches this point, gssd_setup_krb5_user_gss_ccache() is going to return "success." Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Update description of "-l" optionChuck Lever2013-03-252-22/+27
| | | | | | | | | | | | | | | Move most of the text in the description of the "-l" option up to the DESCRIPTION section, to match what was done for "-n" and "-k". The discussion is then less restricted by formatting, and we can take the space to introduce a few concepts before describing the behavior of rpc.gssd. Fix a few misspellings and grammar issues while here. Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Clarify use of the term "machine credentials" in rpc.gssd(8)Chuck Lever2013-03-251-37/+105
| | | | | | | | | | | | | | | | | | | | | Our NFSv4 implementation uses machine credentials for operations that manage state on behalf of the whole client (for example, SETCLIENTID or RENEW). The rpc.gssd man page is missing a description of this usage, especially in the discussion of the "-n" option. The issue is that rpc.gssd's "-n" option requires root to acquire a user credential. In the absense of a system keytab (for instance, if the system is diskless) root's credential is not to be used as the machine credential that manages NFSv4 state. Group the discussion of machine credentials and UID 0 in one place to help clarify the discussion and simplify the description of several of these options. Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Provide an introduction in gssd(8)Chuck Lever2013-03-251-14/+59
| | | | | | | | | | | | | | | It's good practice in user documentation to define terms before they are used. Add an INTRODUCTION section that defines important terms that are used in the DESCRIPTION and OPTIONS sections. The key concepts are GSS context, user credential, machine credential, and keytab. The RFCs I looked at capitalize both "gss" and "rpcsec_gss". For consistency I changed this throughout the man page. Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: gssd.man is missing a description of the "-M" optionChuck Lever2013-03-251-10/+16
| | | | | | Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Use italics for option values and pathnamesChuck Lever2013-03-251-9/+21
| | | | | | | | | | Clean up: The usual convention for the values of command line options and for pathnames is for them to appear italicized, rather than emboldened or in double quotes. Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>