1.10.2 Manually Changing User IDs and Group IDs for dbmsrv

Prior to Oracle Exadata System Software releases 18.1.12 and 19.1.2 when the migrate_ids.sh script was introduced, you can manually change the user and group IDs associated with the dbmsrv service users.

You can change the user and group IDs associated with the dbmsrv service users if there are conflicts with the default values (for example, if you are using LDAP or if you are using session management tools that require different values from the default values). Note the following:

  • If possible, you should upgrade to the latest version of Oracle Exadata System Software and use the migrate_ids.sh script instead of using the manual procedure described here.

  • On systems using Exascale, if you want to change the ID of the dbmsvc user or the dbmusers group, ensure that you shut down all Oracle Database instances and Oracle Grid Infrastructure processes before using this procedure.

  • You can only use this procedure to change the dbmsrv service users and groups. Do not use it to modify the user and group IDs for other Oracle products.

To manually change the user and group IDs associated with the dbmsrv service:

  1. Shut down the Exadata database server services.

    Run the following command as the root or dbmadmin user.

    # dbmcli -e alter dbserver shutdown services all
  2. Change the group IDs.
    1. Change the assigned group ID for the group.
      Run the following command as root, where new_group_ID is the new group ID, and group_name the name of group you want to change:
      # groupmod -g new_group_ID group_name

      For example:

      # groupmod -g 3001 dbmusers
    2. Update the files containing the old group ID.

      Run the following command as root:

      # find / -gid old_group_ID -exec chgrp -h new_group_ID {} \;

      For example:

      # find / -gid 11140 -exec chgrp -h 3001 {} \;
  3. Change the user IDs.
    This step has to be done after changing the group ID or you will get a "GID does not exist" error.
    1. Change the user ID assigned to the user.
      Run the following command as c, where new_user_ID is the new ID for the user, new_group_ID is the new group ID assigned in the previous step, and username is the name of the user you want to change.
      # usermod -u new_user_ID -g new_group_ID username

      For example:

      # usermod -u 2998 -g 3001 dbmsvc
    2. Update the files containing the old user ID.

      Run the following command as root:

      # find / -uid old_user_ID -exec chown -h new_user_ID {} \;

      For example:

      # find / -uid 12137 -exec chown -h 2998 {} \;
  4. Reset the setuid bit on the executable files.
    The setuid bit was changed by the chgrp and chown commands. Perform the following sub-steps as root.
    1. Modify the permissions for the dbrsMain executable.
      # chmod 6550 /opt/oracle/dbserver/dbms/bin/dbrsMain
    2. Modify the permissions for the exaCmdHelper executable.
      # chmod 4550 /opt/oracle/dbserver/dbms/bin/exaCmdHelper
  5. Restart the services on the database server.

    Run the following command as the root or dbmadmin user:

    # dbmcli -e alter dbserver startup services all