mysqld won't give a warning any more, if --user=user_name is used,

if 'user_name' is the current user and it is not root.
parent 4851b571
...@@ -1014,13 +1014,20 @@ static void set_user(const char *user) ...@@ -1014,13 +1014,20 @@ static void set_user(const char *user)
{ {
#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__) #if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
struct passwd *ent; struct passwd *ent;
uid_t user_id= geteuid();
// don't bother if we aren't superuser // don't bother if we aren't superuser
if (geteuid()) if (user_id)
{ {
if (user) if (user)
{
/* Don't give a warning, if real user is same as given with --user */
struct passwd *user_info= getpwnam(user);
if (!user_info || user_id != user_info->pw_uid)
fprintf(stderr, fprintf(stderr,
"Warning: One can only use the --user switch if running as root\n"); "Warning: One can only use the --user switch if running as root\n");
}
return; return;
} }
else if (!user) else if (!user)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment