Что делает "chgrp 0"?

Попробуйте следующее, которое должно вернуть рекурсивный результат

find /home/user/myfolder -name '*.html' -exec sh -c '
  for file do
    yourcommands with "$file"
  done' sh {} +

Больше о find и много примеров на http://en.wikipedia.org/wiki/Find, а также несколько разных вещей в https://unix.stackexchange.com/questions/tagged/find

0
21.08.2018, 18:06
3 ответа

chgrp 0 fileизменит групповое владение файлом fileна группу с GID 0, которая почти во всех случаях в Linux является группой root(в BSD, это почти всегдаwheel). Таким образом, ваша команда findбудет искать по пути, заданному первым позиционным параметром ($1), все содержащиеся в нем объекты файловой системы, переходить по любым символическим ссылкам на их цели и делать группу владельцем этих объектов GID 0,root(илиwheel).

5
28.01.2020, 02:15

0 — это UID и GID root. Таким образом, когда вы выполняете chgrp 0, вы меняете групповое владение файлом/каталогом на root.

0
28.01.2020, 02:15

По сути, владение любым файлом/каталогом в Linux хранится в inode . И он хранится как целое число (для пользователя и второе целое число для группы ). Это зависит только от вашего NSS (, например. /etc/passwd или ldap ), имя которого он покажет вам в ls. Выполняя операцию типа chgrp root file, система возьмет 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
1
28.01.2020, 02:15

Теги

Похожие вопросы