// Don't bother if we aren't superuser if (user_id)
{ if (user)
{ /* Don't give a warning, if real user is same as given with --user */
user_info= getpwnam(user); if (!user_info || user_id != user_info->pw_uid)
{
my_errno= EPERM; if (MyFlags & MY_WME)
my_printf_error(my_errno, "One can only use the --user switch if " "running as root", MYF(ME_WARNING|ME_ERROR_LOG));
}
}
DBUG_RETURN(NULL);
} if (!user)
{ if (MyFlags & MY_FAE)
{
my_errno= EINVAL;
my_printf_error(my_errno, "Please consult the MariaDB Documentation to find " "out how to run mariadbd as root!", MYF(ME_ERROR_LOG));
}
DBUG_RETURN(NULL);
} if (!strcmp(user,"root"))
DBUG_RETURN(NULL);
if (!(user_info= getpwnam(user)))
{ // Allow a numeric uid to be used int err= 0;
user_id= my_strtoll10(user, NULL, &err); if (err || !(user_info= getpwuid(user_id)))
{
my_errno= EINVAL;
my_printf_error(my_errno, "Can't change to run as user '%s'. Please " "check that the user exists!", MYF(ME_ERROR_LOG), user);
DBUG_RETURN(NULL);
}
}
DBUG_ASSERT(user_info);
DBUG_RETURN(user_info);
}
int my_set_user(constchar *user, struct passwd *user_info, myf MyFlags)
{
DBUG_ENTER("my_set_user");