我正在分析一个脚本,但我在网上找不到chgrp 0在下面一行中的含义:
find $1 -follow -exec chgrp 0 {}所以
find $1采用参数,
-follow导致查找遵循符号链接,
-exec执行命令,
chgrp 0更改组所有权,but 0做什么?,
查找命令找到的所有项的{}。
如果我做错了什么,请纠正我。
发布于 2018-08-21 15:09:21
chgrp 0 file将把文件file的组所有权更改为GID 0组,在几乎所有情况下,D2都是root组(在BSD中,这几乎总是wheel)。因此,find命令将在第一个位置参数($1)提供的路径中搜索其中包含的所有文件系统对象,遵循指向其目标的任何符号链接,并使这些对象的组所有者GID 0、root (或wheel)。
发布于 2018-08-21 16:09:21
linux中任何文件/目录的基本所有权都存储在in inode中。并将其存储为整数(用户为整数,组为第二个整数)。它只取决于您的NSS (例如/etc/passwd文件或ldap),它的名称将显示在ls中。执行像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发布于 2018-08-21 15:37:46
0是根的UID和GID。因此,在执行chgrp 0时,您将文件/目录的组所有权更改为root。
https://unix.stackexchange.com/questions/463890
复制相似问题