diff --git a/src/slurmdbd/proc_req.c b/src/slurmdbd/proc_req.c index d793c6777e94fa6d9496e04ffe1807474a49ec2b..7043c18525e6a4a9a742d2cecdead068e45908f3 100644 --- a/src/slurmdbd/proc_req.c +++ b/src/slurmdbd/proc_req.c @@ -2365,9 +2365,15 @@ is_same_user: if ((user_rec->admin_level != SLURMDB_ADMIN_NOTSET) && (*uid != slurmdbd_conf->slurm_user_id && *uid != 0) - && (admin_level < user_rec->admin_level)) { - comment = "You have to be the same or higher admin level to change another persons"; - user_rec->admin_level = SLURMDB_ADMIN_NOTSET; + && (admin_level < SLURMDB_ADMIN_SUPER_USER)) { + comment = "You must be a super user to modify a users admin level"; + error("CONN:%u %s", slurmdbd_conn->newsockfd, comment); + *out_buffer = make_dbd_rc_msg(slurmdbd_conn-> + rpc_version, + ESLURM_ACCESS_DENIED, + comment, + DBD_MODIFY_USERS); + return ESLURM_ACCESS_DENIED; } if (!(list_msg.my_list = acct_storage_g_modify_users(