スクリプトを分析していますが、オンラインでchgrp 0
次の行の意味が見つかりませんでした。
find $1 -follow -exec chgrp 0 {}
だから
find $1
パラメータを受け入れ、
-follow
findがシンボリックリンクに従うようにします。
-exec
注文を実行し、
chgrp 0
グループ所有権の変更、しかし、ゼロは何をしますか?、
{}
find コマンドで見つかったすべての項目に適用されます。
私が間違った部分がある場合は、修正してください。
答え1
chgrp 0 file
ファイルのグループ所有権をfile
GIDのあるグループに変更します0
。これはほぼ常にroot
Linuxのグループです(BSDではほとんど常にそうですwheel
)。したがって、コマンドはfind
最初の位置引数()によって提供されるパスに$1
含まれるすべてのファイルシステムオブジェクトを検索し、その宛先へのシンボリックリンクを追跡し、これらのオブジェクトのグループ所有者をGID 0
(root
または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に変更されます。