X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fafpd%2Fuid.c;h=a3e4d59704592e9626734bdde323a992953241b1;hb=0612081546981aae6caa7fde0f60fee10d9b688a;hp=b8a256a1269d9990a97fd5f98a3c1b4b88dc7ad5;hpb=fe799d02fc65261e7374c7c1f3b43639f057b70a;p=netatalk.git diff --git a/etc/afpd/uid.c b/etc/afpd/uid.c index b8a256a1..a3e4d597 100644 --- a/etc/afpd/uid.c +++ b/etc/afpd/uid.c @@ -1,5 +1,4 @@ /* - * $Id: uid.c,v 1.2 2001-01-27 17:54:26 itlm019 Exp $ * code: jeff@univrel.pr.uconn.edu * * These functions are abstracted here, so that all calls for resolving @@ -7,101 +6,7 @@ * across the package). */ -/* don't compile this file at all unless FORCE_UIDGID is set */ -#ifdef FORCE_UIDGID - #ifdef HAVE_CONFIG_H #include "config.h" -#endif - -#include -#include -#include - -/* functions for username and group */ -#include -#include -#include "uid.h" - -#ifdef HAVE_UNISTD_H -#include -#endif - -void save_uidgid ( pair ) - uidgidset *pair; -{ - (pair)->uid = geteuid (); - (pair)->gid = getegid (); -} /* end function void save_uidgid ( pair ) */ - -void restore_uidgid ( pair ) - uidgidset *pair; -{ - if ( seteuid ( (pair)->uid ) < 0 ) - syslog ( LOG_ERR, "restore_uidgid: unable to seteuid '%s': %m", - (pair)->uid ); - if ( setegid ( (pair)->gid ) < 0 ) - syslog ( LOG_ERR, "restore_uidgid: unable to setegid '%s': %m", - (pair)->gid ); -} /* end function void restore_uidgid ( pair ) */ - -void set_uidgid ( this_volume ) - struct vol *this_volume; -{ - int uid, gid; /* derived ones go in here */ - - /* check to see if we have to switch users */ - if ( uid = user_to_uid ( (this_volume)->v_forceuid ) ) { - if ( seteuid ( uid ) < 0 ) - syslog ( LOG_ERR, "set_uidgid: unable to seteuid '%s': %m", - (this_volume)->v_forceuid ); - } /* end of checking for (this_volume)->v_forceuid */ - - /* check to see if we have to switch groups */ - if ( gid = group_to_gid ( (this_volume)->v_forcegid ) ) { - if ( seteuid ( gid ) < 0 ) - syslog ( LOG_ERR, "set_uidgid: unable to setegid '%s': %m", - (this_volume)->v_forcegid ); - } /* end of checking for (this_volume)->v_forcegid */ - -} /* end function void set_uidgid ( username, group ) */ - -int user_to_uid ( username ) - char *username; -{ - struct passwd *this_passwd; - - /* check for anything */ - if ( strlen ( username ) < 1 ) return 0; - - /* grab the /etc/passwd record relating to username */ - this_passwd = getpwnam ( username ); - - /* return false if there is no structure returned */ - if (this_passwd == NULL) return 0; - - /* return proper uid */ - return this_passwd->pw_uid; - -} /* end function int user_to_uid ( username ) */ - -int group_to_gid ( group ) - char *group; -{ - struct group *this_group; - - /* check for anything */ - if ( strlen ( group ) < 1 ) return 0; - - /* grab the /etc/groups record relating to group */ - this_group = getgrnam ( group ); - - /* return false if there is no structure returned */ - if (this_group == NULL) return 0; - - /* return proper gid */ - return this_group->gr_gid; - -} /* end function int group_to_gid ( group ) */ +#endif /* HAVE_CONFIG_H */ -#endif FORCE_UIDGID