Для данного каталога, как проверить, какие файлы имеют определенный флаг разрешения в группе?

У меня есть каталог, и я хочу перечислить все файлы с разрешениями для записи в своей группе, независимо от того, к какой группе они принадлежат.

Кроме того, как это можно сделать для всей файловой системы?

  • Я добавил пользователя в группу, но групповые разрешения на файлы по-прежнему не влияют
  • Ubuntu: невозможно скопировать файл в каталог, созданный с использованием тех же учетных данных
  • Кажется, что chown разрешено не root-пользователю
  • Linux общий FTP: нельзя удалять один файл
  • Разрешение запрещено для некоторых разделяемых библиотек
  • Разрешения Sudo группами ldap через nslcd
  • Разрешения для каталога FTP: наследовать владельца каталога
  • Как запустить скрипт с привилегиями, ожидаемыми от общего «предполагаемого пользователя» сценария?
  • 2 Solutions collect form web for “Для данного каталога, как проверить, какие файлы имеют определенный флаг разрешения в группе?”

    Вы можете использовать find с предикатом -perm . От man find (POSIX):

     -perm [-]mode The mode argument is used to represent file mode bits. It shall be identical in format to the symbolic_mode operand described in chmod() , and shall be interpreted as follows. To start, a template shall be assumed with all file mode bits cleared. An op symbol of '+' shall set the appropriate mode bits in the template; '-' shall clear the appropriate bits; '=' shall set the appropriate mode bits, without regard to the contents of process' file mode creation mask. The op symbol of '-' cannot be the first character of mode; this avoids ambiguity with the optional leading hyphen. Since the initial mode is all bits off, there are not any symbolic modes that need to use '-' as the first character. If the hyphen is omitted, the primary shall evaluate as true when the file permission bits exactly match the value of the resulting template. Otherwise, if mode is prefixed by a hyphen, the primary shall evaluate as true if at least all the bits in the resulting template are set in the file permission bits. 

    Поэтому вы можете попробовать:

     find /some/path/ -type f -perm -g=w 

    -type f для обычных файлов. Для всей файловой системы замените /some/path на / .

     find /some/dir -type f -perm -020 -ls 

    Это работает как для GNU, так и для BSD find(1) .

    Linux и Unix - лучшая ОС в мире.