summaryrefslogtreecommitdiffstats
path: root/utils/gssd
Commit message (Collapse)AuthorAgeFilesLines
* Use uid/gid of -1 to indicate the export's anonuid/anongid should be usedKevin Coffman2006-07-081-2/+5
| | | | | | | | | | | Kernel routine nfsd_setuser() in fs/nfsd/auth.c checks for the value -1 and defaults the credential's fsuid/fsgid to the correct anonuid/anongid values for the given export. We should be passing this value (-1) down when a name mapping cannot be found. Thanks to J. Bruce Fields <bfields@fieldses.org> for the reference. Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Acked-by: J. Bruce Fields <bfields@fieldses.org>
* Change svcgssd_LDFLAGS to match gssd_LDFLAGSKevin Coffman2006-07-081-1/+1
|
* Only use -rpath for Kerberos libs when actually needed.Neil Brown2006-07-061-1/+1
| | | | Avoid usage of -rpath is generally safer, and is required by Debian policy.
* Use 65534 instead of -2 in svcgssd_proc.cNeil Brown2006-07-061-4/+3
| | | | as this is more consistant across achitectures.
* Handle mapping failure from get_ids.kwc@citi.umich.edu2006-07-041-2/+15
| | | | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Temporary patch to do default mapping if we get an error while trying to map a gss principal to the appropriate uid/gid. This currently returns hardcoded values. This may be correct, or we may need to try and figure out the correct values to match the anonuid/anongid for the export.
* Properly report errors in readline() functionkwc@citi.umich.edu2006-07-042-4/+8
| | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Change message priorities for errors and debug messages.
* Change default buffer size increment for readline()kwc@citi.umich.edu2006-07-041-3/+5
| | | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> The readline routine expects much smaller messages than we are passing. Change the default initial allocation and increment value from 128 to 2048. This saves many calls to realloc().
* Clean up the printerr() logging function.kwc@citi.umich.edu2006-07-041-30/+31
| | | | | | | | | | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Update the printerr() function to: 1) Determine whether we'll print the message before going to all the work of formatting it. 2) Don't just toss away messages that are too long for the buffer. Print what we can and give an indication of the truncation with "..." at the end. 3) Use a single buffer rather than two. 4) Messages either go to syslog (with level ERR) or stderr. Don't send some messages to syslog level DEBUG.
* Use setfsuid() rather than seteuid() while creating contextskwc@citi.umich.edu2006-07-041-7/+7
| | | | | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> As suggested by Olaf Kirch <okir@suse.de>, use setfsuid() rather than seteuid() when creating a gss context. This prevents users from using credentials that do not belong to them, while also preventing them from doing things like killing, renicing, or changing the priority of the gssd process while it is processing the context creation.
* Limit acquire_cred call to to Kerberos onlykwc@citi.umich.edu2006-07-041-1/+6
| | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Specify that the acquire_cred call should only be concerned with returning Kerberos credentials since this is Kerberos-only functionality.
* Check that the gssapi library is usable early on.kwc@citi.umich.edu2006-07-044-0/+34
| | | | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Do a call to determine mechanisms supported by the gssapi library early. This allows us to discover early in case the gssapi library is somehow misconfigured. We can bail out early and give a meaningful message rather than getting errors on each attempt at a context negotiation.
* Fix problems with 64-bit big-endian machineskwc@citi.umich.edu2006-07-042-4/+4
| | | | | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Correct the definition of mech_used in the gss context to use gss_OID_desc. This fixes problems on 64-bit machines when referencing the OID. Also updates write_buffer function to use u_int rather than size_t when doing calculations.
* Define CFLAGS for gss_clnt_send_err compilekwc@citi.umich.edu2006-07-041-0/+3
| | | | | | | Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Add CFLAGS to make sure we find and use the correct gssapi.h when building gss_clnt_send_err
* Remove **/Makefile.in, aclocal.m4, configure, andNeil Brown2006-04-171-1044/+0
| | | | | | support/include/config.h.in from source control These are auto autogenerated by aclocal -I aclocal ; autoheader ; automake ; autoconf
* 2006-04-10 NeilBrown <neilb@suse.de>neilbrown2006-04-102-5/+6
| | | | | | | | | | | | | Various paranoia checks: gssd_proc.c: pass max_field sizes to sscanf to avoid buffer overflow svcgssd_proc.c: range_check name.length, to ensure name.length+1 doesn't wrap idmapd.c(nfsdcb): make sure at least one byte is read before zeroing the last byte that was read, otherwise memory corruption is possible. Found by SuSE security audit.
* 2006-04-10 "Kevin Coffman" <kwc@citi.umich.edu>neilbrown2006-04-101-0/+2
| | | | | Check for sufficient version of librpcsecgss and libgssapi in configure.in
* 2006-04-10 "Kevin Coffman" <kwc@citi.umich.edu>neilbrown2006-04-101-0/+2
| | | | | Update aclocal/tcp-wrappers.m4 to define HAVE_LIBWRAP and HAVE_TCP_WRAPPERS as appropriate.
* 2006-04-10 kwc@citi.umich.eduneilbrown2006-04-092-2/+2
| | | | | | | Update calls to gss_export_lucid_sec_context() Change the calls to gss_export_lucid_sec_context() to match the corrected interface definition in libgssapi-0.9.
* 2006-04-10 kwc@citi.umich.eduneilbrown2006-04-091-0/+13
| | | | | | Plug memory leaks in svcgssd Various memory leaks in the svcgssd context processing are eliminated.
* 2006-04-10 kwc@citi.umich.eduneilbrown2006-04-091-33/+47
| | | | | | | Fix memory leak of the AUTH structure on context negotiations Free AUTH structure after completing context negotiation and sending context information to the kernel.
* aclocal/autoconf/automake, properly this time.neilbrown2006-03-281-2/+6
|
* Update version, autoconf, automakeneilbrown2006-03-281-43/+105
|
* Use PKGCONFIG to locate gssapi and rpcsecgss header filesneilbrown2006-03-281-5/+2
| | | | | | | | | | | Instead of having separate copies of the gssapi and rpcsecgss header files, or depending on the Kerberos gssapi header, locate the headers now installed with the libgssapi and librpcsecgss libraries. Remove local copies of the gssapi and rpcsecgss header files. This depends on the configure_use_autotools patch.
* Add debugging to better detect negotiation of enctype not supported by kernelneilbrown2006-03-281-0/+10
| | | | | | | Print debugging message indicating the type of encryption keys being sent down to the kernel. This should make it easier to detect cases where unsupported encryption types are being negotiated. (really this time)
* Don't close and reopen all pipes on every DNOTIFY signal.neilbrown2006-03-281-36/+87
| | | | | | | | | | From: Vince Busam <vbusam@google.com> Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Don't unnecessarily close and re-open all pipes after every DNOTIFY signal. These unnecessary closes were triggering a kernel Oops. Original patch modified to correct segfault when unmounting last NFSv4 mount.
* Add option to specify directory to search for credentials cache filesneilbrown2006-03-284-9/+20
| | | | | | | | | From: Vince Busam <vbusam@google.com> Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Add command line option to specify which directory should be searched to find credentials caches. (really this time)
* Must still use knowledge of the glue context for pre-1.4 versions of MIT krb5neilbrown2006-03-281-1/+12
| | | | | | | | We need to get access to the internal krb5 context pointer for older (pre-1.4) versions of MIT Kerberos. We get a pointer to the gss glue's context. Get the right pointer before accessing the context information. (really this time)
* Remove unused groups variable from get_ids() which was causing a compiler ↵neilbrown2006-03-281-1/+0
| | | | | | warning. (really this time)
* Update krb5 code to use glue routine lucid context functionsneilbrown2006-03-285-19/+29
| | | | | | | | | | | The gssd code should not know about the glue layer's context structure. A previous patch added gss_export_lucid_sec_context() and gss_free_lucid_sec_context() functions to the gssapi glue layer. Use these functions rather than calling directly to the Kerberos gssapi code (which requires the Kerberos context handle rather than the glue's context handle). (really this time)
* add missing files from previous updateneilbrown2006-03-282-0/+514
|
* Separate out context handling code for MIT Kerberos and SPKM3neilbrown2006-03-283-450/+5
| | | | | into their own file. (Really this time)
* Fix up the svcgss mess I made, and run autoconf/automakeneilbrown2006-03-2710-66/+1528
|
* head/tail fixesneilbrown2005-12-211-1/+1
|
* Remove all the Makefilesneilbrown2005-12-201-16/+0
|
* More automake stuffneilbrown2005-12-201-0/+749
|
* Autogen updateneilbrown2005-12-201-0/+83
|
* utils/gssd/gssd_proc.c(create_auth_rpc_client): Use serviceneilbrown2005-12-191-2/+17
| | | | portion of clp->servicename rather than hard-coding "nfs".
* Updates from Kevin Coffman at UMichneilbrown2005-12-163-96/+213
|
* Add option to set rpcsec_gss debugging level (if available)neilbrown2005-08-265-15/+82
| | | | | | | Changes to allow gssd/svcgssd to build when using Hiemdal Kerberos libraries. Note that there are still run-time issues preventing this from working when shared libraries for libgssapi and librpcsecgss are used.
* Remove the rpcsec_gss code and rely on an external library instead.neilbrown2005-08-261-2/+1
|
* 2005-08-26 Kevin Coffman <kwc@citi.umich.edu>neilbrown2005-08-262-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *utils/mountd/mountd.c: mountd currently always returns AUTH_NULL and AUTH_SYS as the allowable flavors in mount replies. We want it to also return gss flavors when appropriate. For now as a hack we just have it always return the KRB5 flavors as well. *utils/mountd/cache.c: When attempting to mount an NFSv4 pseudofilesystem (fsid=0) and the actual exported directory does not exist on the server, rpc.mountd doesn't check the directory exists (when fsidtype=1, i.e. using fsid, but does check for fsidtype=0, i.e. using dev/ino). The non-existent exported directory path with fsid=0 is written to the kernel via /proc/net/rpc/nfsd.export/channel, which leads to path_lookup() to return ENOENT (seems appropriate). Unfortunately, the new_cache approach ignores errors returned when writing via the channel file so that particular error is lost and the mount request is silently ignored. Assuming it doesn't make sense to revamp the new_cache/up-call method to not ignore returned errors, it seems appropriate to fix the case where rpc.mountd doesn't check for the existence of an exported directory with fsid= semantics. The following patch does this by moving the stat() up so it is done for both fsidtype's. I'm not certain whether the other tests need to be executed for fsidtype=1, but it doesn't appear to hurt [Not exactly true: the comparison of inode numbers caused problems so now it's kept for fsidtype=0 only]. Would it be also desirable to log a warning for every error, if any, returned by a write to any of the /proc/net/rpc/*/channel files which would otherwise be ignored (maybe under a debug flag)? * gssd/mountd/svcgssd: Changes gssd, svcgssd, and mountd to ignore a SIGHUP rather than dying. * many: Remove the gssapi code and rely on an external library instead.
* 2005-08-26 Kevin Coffman <kwc@citi.umich.edu>neilbrown2005-08-262-42/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * utils/exportfs/exports.man: Document the "crossmnt" export export option * utils/gssd/krb5_util.c: Add better debugging and partially revert the function check for gss_krb5_ccache_name. For MIT Kerberos releases up to and including 1.3.1, we *must* use the routine gss_krb5_ccache_name to get the K5 gssapi code to use a different credentials cache. For releases 1.3.2 and on, we want to use the KRB5CCNAME environment variable to tell it what to use. (A problem was reported where 1.3.5 was being used, our code was using gss_krb5_ccache_name, but the underlying code continued to use the first (or default?) credentials cache. Switching to using the env variable fixed the problem. I cannot recreate this problem. *utils/gssd/krb5_util.c: Andrew Mahone <andrew.mahone@gmail.com> reported that reiser4 always has DT_UNKNOWN. He supplied patch to move the check for regular files after the stat() call to correctly find ccache files in reiser4 filesystem. Also change the name comparison so that the wrong file is not selected when the substring comparison is done. *utils/gssd/krb5_util.c: Limit the set of encryption types that can be negotiated by the Kerberos library to those that the kernel code currently supports. This should eventually query the kernel for the list of supported enctypes. *utils/gssd/gss_util.c, utils/svcgssd/svcgssd_main_loop.c: Print more information in error messages to help debugging failures. *utils/svcgssd/svcgssd_proc.c: Increase token buffer size and update error handling so that a response is always sent. *utils/svcgssd/svcgssd_proc.c: Add support to retrieve supplementary groups.
* 2005-08-26 Kevin Coffman <kwc@citi.umich.edu>neilbrown2005-08-263-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | * configure.in etc Consolidate some of the Kerberos checking instead of repeating the same things for MIT and Heimdal. Also adds more checks to distinguish 32-bit from 64-bit (mainly for gssapi.h) Fix svcgssd Makefile so make TOP=../../ works correctly there. Enable running a modern autoheader. * utils/gssd/gss_oids.c: Use correct OID value for SPKM-3 * utils/gssd/gss_util.c: Fix build with older MIT releases that do not define GSS_C_NT_HOSTBASED_SERVICE * utils/gssd/write_bytes.h, support/include/gssapi/gssapi.h: Length of gss_buffer_desc is a size_t which is 64-bits on a 64-bit machine. Kernel code expects 32-bit integer for length. Coerce length value into a 32-bit value when reading from or writing to the kernel. Change gssapi.h to use datatype size values obtained from configure rather than hard-coded values. * utils/idmapd/idmapd.c: The EV_INIT check here was wrong, and was causing idmapd to become unresponsive to server requests after receiving a sighup. * utils/idmapd/idmapd.c: Idmapd should flush the server id<->name caches when its started.
* Added TOP, as needed, for easier compile in subdirectoriesgmorris2005-04-121-0/+1
|
* *** empty log message ***neilbrown2004-11-221-0/+4
|
* *** empty log message ***neilbrown2004-11-221-12/+17
|
* Add gss support from citi @ umichneilbrown2004-10-1920-0/+3431