特定のグループのグループIDを変更したいです。ファイルやディレクトリのgidを変更する方法はいくつかあります。しかし、それは私が望むものではありません。これを行う方法はありますか?
答え1
GID はグループの基本識別子です。システムの場合、異なるGIDは異なるグループです。したがって、GIDを変更するには、GIDが使用されているすべての場所を変更する必要があります。
GIDの重要な取り扱いを避け、代わりにグループ名を使用する必要があります。単一のコマンド(Linuxではgroupmod -n NEW_GROUP_NAME OLD_GROUP_NAME
:)でグループ名を変更できます。
ただし、GIDを変更したい場合は、次の方法があります。
- まず、グループのユーザーをログアウトし、グループを有効な、実際の、または保存されたグループに保つプロセスを終了する必要があるかもしれません。
- グループデータベースのエントリを変更します。 Linuxでは、を実行します
groupmod -g NEWGID GROUPNAME
。他のシステムでは、そのシステムの管理ツール(vigr
利用可能な場合)を使用するか、/etc/group
必要に応じて編集します。 以前のグループに属するシステムのすべてのファイルグループを変更します。
find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
chgrp は suid フラグと sgid フラグをクリアして復元します。
- 古いGIDを含むアーカイブがある場合は、再構築してください。
- 以前のGIDを参照する構成ファイルまたはスクリプトがある場合は、更新してください。
- 新しいGIDを使用する必要があるすべてのプロセスを再起動します。
答え2
最も簡単な方法はgroupmod -g <NEW_GID> <groupname>
もう一つの方法は直接編集することです/etc/group
。各列の3番目のフィールドはgidです。
変更されるグループがユーザーのデフォルトグループである場合は、/etc/passwd
調整も実行する必要がありますusermod -g <NEW_GID> <username>
。
答え3
/ path -group foo -print0 | xargs -0 chgrp 列を検索