1.10.1 dbmsrvのユーザーIDおよびグループIDの変更

デフォルト値との競合がある場合は、dbmsrvサービス・ユーザーのユーザーIDおよびグループIDを変更できます。たとえば、LDAPを使用している場合や、デフォルト値と異なる値を必要とするセッション管理ツールを使用している場合などです。

Oracle Exadata System Softwareリリース18.1.12および19.1.2以降では、migrate_ids.shユーティリティを使用して、dbmsrvユーザーのユーザーIDおよびグループIDを変更できます。次の点に注意してください:

  • migrate_ids.shユーティリティは/opt/oracle.SupportToolsにあり、rootオペレーティング・システム・ユーザーが実行する必要があります。

  • dbmsrvユーザーのユーザーIDまたはグループIDを変更する前に、変更するユーザーまたはグループに関連付けられている実行中のプロセスをすべて停止する必要があります。そうしないと、移行ユーティリティは失敗します。

  • migrate_ids.shユーティリティは、dbmsrvユーザーのユーザーIDおよびグループIDの変更のみを目的としています。このユーティリティを使用して、他のOracle製品のユーザーIDおよびグループIDを変更しないでください。

migrate_ids.shユーティリティの構文およびオプションは次のとおりです:

migrate_ids.sh [ -uid username new_uid ] 
               [ -gid group_name new_group_id ] 
               [ --uid-file uid_file ] 
               [ --gid-file gid_file ] 
               [ -skipdirs directory_path [ ,directory_path  ]] 
  • -uid: ユーザーID移行のユーザー名および新しいUIDを指定します。

  • -gid: グループID移行のグループ名および新しいGIDを指定します。

  • --uid-file: ユーザーID移行のユーザー名とUIDのペアが含まれるファイルを指定します。

    ファイル内の各行には、一意のユーザー名を含める必要があり、次の形式である必要があります:

    <user_name> <new_UID>

    このオプションは、Oracle Exadata System Softwareリリース24.1.0で初めて使用可能になりました。

  • --gid-file: グループID移行のユーザー名とGIDのペアが含まれるファイルを指定します。

    ファイル内の各行には、一意のグループ名を含める必要があり、次の形式である必要があります:

    <group_name> <new_GID>

    このオプションは、Oracle Exadata System Softwareリリース24.1.0で初めて使用可能になりました。

  • -skipdirs: ユーザーIDまたはグループIDの移行中にスキップするディレクトリの絶対パスのリストを指定します。

    このオプションは、移行を高速化するためにスキップさせたい大きいNFSディレクトリがある場合に便利です。ただし、スキップされるディレクトリに移行対象のIDを使用するファイルがある場合、それらのファイルは更新されません。IDの移行を確実に成功させるためには、このオプションでスキップされるディレクトリにこのようなファイルが含まれていないことを確認する必要があります。

例1-4 新しいユーザーIDへのdbmadminユーザーの移行

この例では、ユーザーdbmadminのuidのみを3001に移行する方法を示します。

# migrate_ids.sh -uid dbmadmin 3001

例1-5 新しいグループIDへのdbmusersグループの移行

この例では、グループdbmusersのgidのみを4001に移行する方法を示します。

# migrate_ids.sh -gid dbmusers 4001

例1-6 すべてのdbmsrvユーザーおよびグループを新しい値に移行する

この例では、dbmsrvのすべてのユーザーIDとグループIDを新しい値に移行する方法を示します。

# migrate_ids.sh -uid dbmsvc 3001 -gid dbmsvc 4001
# migrate_ids.sh -uid dbmadmin 3002 -gid dbmadmin 4002
# migrate_ids.sh -uid dbmmonitor 3003 -gid dbmmonitor 4003
# migrate_ids.sh -gid dbmusers 4004

例1-7 入力ファイルを使用してすべてのdbmsrvユーザーおよびグループを新しい値に移行する

この例では、新しいユーザーIDおよびグループIDを指定するための入力ファイルを使用して、dbmsrvのすべてのユーザーIDおよびグループIDを新しい値に移行する方法を示します。

この例は、前述の例と機能的に同等ですが、移行はmigrate_ids.shユーティリティを1回のみ実行することによって実行されます。

# cat uidfile
dbmsvc 3001
dbmadmin 3002
dbmmonitor 3003
# cat gidfile
dbmsvc 4001
dbmadmin 4002
dbmmonitor 4003
dbmusers 4004
# migrate_ids.sh --uid-file uidfile --gid-file gidfile

例1-8 ディレクトリをスキップしてユーザーIDを移行する

この例では、/procまたは/sysディレクトリ内のファイルを検索せずに、ユーザーdbmadminのユーザーIDを3001に移行する方法を示します。

# migrate_ids.sh -uid dbmadmin 3001 -skipdirs /proc,/sys

関連トピック