「chgrp 0」は何をしますか?

「chgrp 0」は何をしますか?

スクリプトを分析していますが、オンラインでchgrp 0次の行の意味が見つかりませんでした。

find $1 -follow -exec chgrp 0 {}

だから

find $1パラメータを受け入れ、

-followfindがシンボリックリンクに従うようにします。

-exec注文を実行し、

chgrp 0グループ所有権の変更、しかし、ゼロは何をしますか?

{}find コマンドで見つかったすべての項目に適用されます。

私が間違った部分がある場合は、修正してください。

答え1

chgrp 0 fileファイルのグループ所有権をfileGIDのあるグループに変更します0。これはほぼ常にrootLinuxのグループです(BSDではほとんど常にそうですwheel)。したがって、コマンドはfind最初の位置引数()によって提供されるパスに$1含まれるすべてのファイルシステムオブジェクトを検索し、その宛先へのシンボリックリンクを追跡し、これらのオブジェクトのグループ所有者をGID 0rootまたはwheel)にします。

答え2

デフォルトでは、Linux上のすべてのファイル/ディレクトリの所有権は次の場所に保存されます。インデックスノード。整数(ユーザーは整数、グループは2番目の整数)として保存されます。 lsに表示される名前は、NSS(たとえば/ etc / passwdファイルまたはldap)によって異なります。システムのように実行すると、chgrp root file「root」グループのGID(私の場合は0)を取得し、その0をinodeに書き込みます。次のようにすることもできます。

# touch testfile
# chgrp 135543 testfile
# ls -l testfile
-rw-r--r--. 1 root 135543 0 Aug 21 18:05 testfile
# groupadd -g 135543 testgroup
# ls -l testfile
-rw-r--r--. 1 root testgroup 0 Aug 21 18:05 testfile

答え3

0 はルートの UID と GID です。したがって、chgrp 0を実行すると、ファイル/ディレクトリのグループ所有権がrootに変更されます。

関連情報