diff --git a/src/condor_gridmanager/gridmanager_main.cpp b/src/condor_gridmanager/gridmanager_main.cpp
index b308f7166f..f8d23453f1 100644
--- a/src/condor_gridmanager/gridmanager_main.cpp
+++ b/src/condor_gridmanager/gridmanager_main.cpp
@@ -147,8 +147,14 @@ main_init( int argc, char ** const argv )
 	// not as user condor.
 	if (os_name) {
 		std::string buf;
-		const char *owner = name_of_user(os_name, buf);
-		const char *domain = domain_of_user(os_name, nullptr);
+		const char* owner = nullptr;
+		const char* domain = nullptr;
+#if defined(WIN32)
+		owner = name_of_user(os_name, buf);
+		domain = domain_of_user(os_name, nullptr);
+#else
+		owner = os_name;
+#endif
 		if ( !init_user_ids(owner, domain)) {
 			dprintf(D_ALWAYS, "init_user_ids() failed!\n");
 			// uids.cpp will EXCEPT when we set_user_priv() now
diff --git a/src/condor_schedd.V6/schedd.cpp b/src/condor_schedd.V6/schedd.cpp
index 73e935f461..a4dbb32aa1 100644
--- a/src/condor_schedd.V6/schedd.cpp
+++ b/src/condor_schedd.V6/schedd.cpp
@@ -10225,6 +10225,8 @@ Scheduler::makeReconnectRecords( const PROC_ID & job, const ClassAd* match_ad )
 	}
 
 	JobQueueJob* job_ad = GetJobAd(cluster, proc);
+	TemporaryPrivSentry sentry;
+	init_user_ids_from_ad(*job_ad->ownerinfo);
 	WriteUserLog* ULog = this->InitializeUserLog(job_ad);
 	if ( ULog ) {
 		JobDisconnectedEvent event;
