diff --git a/src/common/uid.c b/src/common/uid.c
index 45c4ab4554357c8f75b4267c018881acbc76986f..1e2a3610072c4d2e3db74af7dc2955ad19521cc8 100644
--- a/src/common/uid.c
+++ b/src/common/uid.c
@@ -19,13 +19,13 @@ uid_t
 uid_from_name( char *name )
 {
 	struct passwd *p = getpwnam( name );
-	return p ? p->pw_uid : 0;
+	return p ? p->pw_uid : NFS_NOBODY;
 }
 
 gid_t
 gid_from_name( char *name )
 {
 	struct group *g = getgrnam( name );
-	return g ? g->gr_gid : 0;
+	return g ? g->gr_gid : NFS_NOBODY;
 }
 
diff --git a/src/common/uid.h b/src/common/uid.h
index 3cc63b1ea325e0c6157cfeca0ec4127d9a004e4c..c672917056701532290989cabeba3bae302face7 100644
--- a/src/common/uid.h
+++ b/src/common/uid.h
@@ -1,6 +1,8 @@
 #ifndef __SLURM_UID_UTILITY_H__
 #define __SLURM_UID_UTILITY_H__
 
+#define NFS_NOBODY 65534
+
 int	is_digit_string( char *str );
 uid_t	uid_from_name( char *name );
 gid_t	gid_from_name( char *name );
diff --git a/src/srun/opt.c b/src/srun/opt.c
index 6d204c26a371479923edd88ab74b7e51c4cfc24c..ec247668a1a32ce5de795ff84bfaa44ed52316d4 100644
--- a/src/srun/opt.c
+++ b/src/srun/opt.c
@@ -426,6 +426,9 @@ static void _opt_default()
 	opt.max_exit_timeout= 60; /* Warn user 60 seconds after task exit */
 	opt.msg_timeout     = 5;  /* Default launch msg timeout           */
 
+	opt.euid	    = NULL;
+	opt.egid	    = NULL;
+	
 	mode	= MODE_NORMAL;
 
 #ifdef HAVE_TOTALVIEW
@@ -910,7 +913,7 @@ static bool _opt_verify(void)
 	if ( getuid() == 0 ) {
 		if ( opt.euid ) {
 			euid = _become_user( opt.euid, opt.egid );
-			if ( euid ) {
+			if ( euid != NFS_NOBODY ) {
 				opt.uid = euid;
 				strncpy( opt.user, opt.euid, MAX_USERNAME );
 			} else {