ユーザーの UID と GID を変更することは、ほとんどのシステム管理者にとって些細な作業に思えるかもしれません。しかし、これはそれほど簡単なことではなく、バックエンドでさらに多くの変更が必要です。この投稿では、ユーザー「user01」の UID と GID を変更する正確な手順を概説しました。
Username: user01 Group: group01 Existing UID: 800 Existing GID: 700 New UID: 900 New GID: 600
前提条件
1. UID と GID を変更するユーザーが、現在システムでアクティブなプロセスを実行していないことを確認します。同じことを確認するには、「ps」コマンドを使用します。例:
# ps -ef | grep user01 # ps -ef | grep 800注意 :「ps -ef」コマンドで UID が表示されます。そのため、UID とユーザーのユーザー名を grep してください。
2. UID および GID 関連の情報が保存されている重要なファイルのバックアップを取ります。例:/etc/passwd および /etc/group .
# cp -p /etc/passwd /etc/passwd.bkp # cp -p /etc/group /etc/group.bkp
3. 「id」コマンドを使用して、ユーザーの既存の UID と GID を確認します。
# id user01 uid=800(user01) gid=700(group01) groups=700(group01)
ユーザーとグループの UID と GID の変更
必要なバックアップとコマンド出力を取得したら、先に進んで UID と GID を変更できます。
1. まず、グループ group01 の GID を変更します:
# groupmod -g 600 group01
2. 次に、ユーザー user01 の UID と GID も変更します。
# usermod -u 900 -g 600 user01
3. ユーザーの新しい UID と GID を確認します。
# id user01 uid=900(user01) gid=600(group01) groups=600(group01)
注意
1. グループ「group01」に複数のユーザーがいる場合、グループの GID を変更した後、上記のように user01 とともに他のユーザーも変更する必要があります。
2. UID と GID を変更したら、ユーザー/グループが所有するファイルのパーミッションも変更する必要があります。ただし、chown コマンドはファイルの SETUID と SETGID もリセットするため、後でこれらのファイルのアクセス許可を手動で変更する必要があります。そのようなファイルを見つけるには:
# find / -uid 900 -perm /6000 -ls # find / -gid 900 -perm /6000 -ls
3. user01 と group01 が所有するファイルを見つけて、それらの権限を変更するには:
# find / -uid 800 -exec chown -v -h 900 '{}' \; # find / -gid 700 -exec chgrp -v 600 '{}' \;
-h オプションは、シンボリック リンクのパーミッションを変更するためにも使用されます。