diff options
author | unknown <jani@ua126d19.elisa.omakaista.fi> | 2003-06-05 16:56:38 +0300 |
---|---|---|
committer | unknown <jani@ua126d19.elisa.omakaista.fi> | 2003-06-05 16:56:38 +0300 |
commit | 35cd3cbac79731d04a10e08bf8b7ab27cfc4c046 (patch) | |
tree | 772bc03bcdd61004e299e6bd647b5e20c825157e /sql | |
parent | d6f2e8c1731b79765addac5c10f256ce91b7f0f7 (diff) | |
download | mariadb-git-35cd3cbac79731d04a10e08bf8b7ab27cfc4c046.tar.gz |
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.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/mysqld.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 8ed183e2f1f..315931094c2 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1013,14 +1013,21 @@ static void set_ports() static void set_user(const char *user) { #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 - if (geteuid()) + if (user_id) { 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; } else if (!user) |