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 を取ります。
さて、プロセスは簡単です–
<オール>上記の手順のコマンドのリストは次のとおりです。
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 を切り替えたのと同じ方法で行うことができます。