Commit 35cd3cba authored by unknown's avatar unknown

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 d6f2e8c1
...@@ -1013,14 +1013,21 @@ static void set_ports() ...@@ -1013,14 +1013,21 @@ static void set_ports()
static void set_user(const char *user) 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)
fprintf(stderr, {
"Warning: One can only use the --user switch if running as root\n"); /* 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,
"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