private static string GetUserHomeDirOnUnix() { if (SharedUtilities.IsWindowsPlatform()) { throw new NotSupportedException(); } if (!string.IsNullOrEmpty(SharedUtilities.s_homeEnvVar)) { return(SharedUtilities.s_homeEnvVar); } string username = null; if (!string.IsNullOrEmpty(SharedUtilities.s_lognameEnvVar)) { username = s_lognameEnvVar; } else if (!string.IsNullOrEmpty(SharedUtilities.s_userEnvVar)) { username = s_userEnvVar; } else if (!string.IsNullOrEmpty(SharedUtilities.s_lNameEnvVar)) { username = s_lNameEnvVar; } else if (!string.IsNullOrEmpty(SharedUtilities.s_usernameEnvVar)) { username = s_usernameEnvVar; } if (SharedUtilities.IsMacPlatform()) { return(!string.IsNullOrEmpty(username) ? Path.Combine("/Users", username) : null); } else if (SharedUtilities.IsLinuxPlatform()) { if (LinuxNativeMethods.getuid() == LinuxNativeMethods.RootUserId) { return("/root"); } else { return(!string.IsNullOrEmpty(username) ? Path.Combine("/home", username) : null); } } else { throw new NotSupportedException(); } }