GNU/Linux >> Linux の 問題 >  >> Linux

Linux で UID または GID を安全に変更する方法

Linux で UID または GID を安全に変更する方法を学びます。また、所有するファイルの所有権に影響を与えずに、2 人のユーザー間で UID を切り替えたり、2 つのグループ間で GID を切り替えたりする方法も理解しておいてください。

この記事では、所有するファイルの所有権に影響を与えることなく、既存のユーザーまたはグループの UID または GID を変更する手順を説明します。後で、2 つのグループ間で GID を切り替える方法と、システム上の 2 人のユーザー間で、所有するファイルの所有権に影響を与えずに UID を切り替える方法についても説明しました。

システムの UID または GID を変更することから始めましょう。

現在のシナリオ:

UID 1001 のユーザーが辛辣
GID 2001 のグループ sysadmin

予想されるシナリオ:

UID 3001 のユーザーのしわがれ声
GID 4001 のグループ sysadmin

GID と UID の変更は usermod または groupmod コマンドを使用して簡単に行うことができますが、ファイルの所有権は GID と UID によってカーネルに認識されるため、UID または GID を変更した後は、それらが所有するすべてのファイルの所有権を手動で変更する必要があることに注意する必要があります。ユーザー名ではありません。

手順は–

以下のように UID または GID を変更してください:

root@kerneltalks # usermod -u 3001 shrikant
root@kerneltalks # groupmod -g 4001 sysadmin

次に、このユーザーまたはグループが所有するすべてのファイルの所有権を for ループで検索して変更します

root@kerneltalks # for i in `find / -user 1001`; do chown 3001 $i; done
root@kerneltalks # for i in `find / -group 2001`; do chgrp 4001 $i; done
OR
root@kerneltalks # find / -user 1001 -exec chown -h shrikant {} \;
root@kerneltalks # find / -group 2001 -exec chgrp -h sysadmin {} \;

それでおしまい。システム上の UID と GID を安全に変更しましたが、それらが所有するファイルの所有権には影響しません!

2 つのグループの GID を切り替える方法

現在のシナリオ:

GID 1111 のグループ sysadmin
GID 2222 のグループ oracle

予想されるシナリオ:

GID 2222 のグループ sysadmin
GID 1111 のグループ oracle

上記の状況では、システムで現在使用されていない 1 つの中間 GID を使用する必要があります。 /etc/group ファイルを確認し、ファイルに存在しない GID XXXX を 1 つ選択します。この例では、中間 GID として 9999 を取ります。

さて、プロセスは簡単です–

<オール>
  • sysadmin GID を 9999 に変更
  • GID 1111 が所有するすべてのファイルのグループを見つけて、sysadmin に変更します
  • オラクルの GID を 1111 に変更
  • GID 2222 が所有するすべてのファイルのグループを見つけて、oracle に変更します
  • sysadmin GID を 2222 に変更
  • GID 9999 が所有するすべてのファイルのグループを見つけて、sysadmin に変更します
  • 上記の手順のコマンドのリストは次のとおりです。

    root@kerneltalks # groupmod -g 9999 sysadmin
    root@kerneltalks # find / -group 1111 -exec chgrp -h sysadmin {} \;
    root@kerneltalks # groupmod -g 1111 oracle
    root@kerneltalks # find / -group 2222 -exec chgrp -h oracle {} \;
    root@kerneltalks # groupmod -g 2222 sysadmin
    root@kerneltalks # find / -group 9999 -exec chgrp -h sysadmin {} \;
    

    2 人のユーザーの UID を切り替える方法

    中間 UID を使用して上記の GID を切り替えたのと同じ方法で行うことができます。


    Linux
    1. Linuxでホスト名を変更する方法

    2. Linuxでユーザー名を変更する方法

    3. Linux で 1 つのスレッドの UID/GID のみを変更する

    1. Linuxでシステムホスト名を設定または変更する方法

    2. LinuxでSSHポートを変更する方法

    3. Linux でスワップ パーティションを変更するにはどうすればよいですか?

    1. Linuxでホスト名を変更する方法

    2. Linuxでシェルを変更する方法

    3. Linux でユーザー/グループの UID と GID を (正しく) 変更する方法