Как обнаружить неравномерные права доступа к файлам в структуре каталогов?

Как обнаружить неравномерные права доступа к файлам в структуре каталогов?

Как мне найти неравномерные разрешения файлов/каталогов в структуре каталогов? Я сделал несколько попыток использовать команду find, похожую на:

find /bin ! \( -perm 777 -o -perm 776 -o -perm 775 -o -perm 774 -o -perm 773 -o -perm 772 -o -perm 771 -o -perm 770 -o -perm 760 -o -perm 750 -o -perm 740 -o -perm 730 -o -perm 720 -o -perm 710 -o -perm 700 -o -perm 600 -o -perm 500 -o -perm 400но у меня заканчивается командная строка прежде, чем я успеваю завершить оставшиеся перестановки плюс-exec ls -lL {} \;

Я также делал вручную такие вещи, как:

ls -lL /bin | grep -v ^-rwxr-xr-x | grep -v ^-rwx--x--x | grep -v ^-rwsr-xr-x | grep -v ^-r-xr-xr-x | grep -v ^-rwxr-xr-tно опять же, у меня заканчивается командная строка прежде, чем я успеваю завершить оставшиеся перестановки.

Оба метода кажутся необычайно неуклюжими. Есть ли лучший, более быстрый и простой способ? Обратите внимание, что я ограничен в используемой оболочке (sh) и платформе (Irix 6.5.22).

решение1

Вы ищете исполняемые файлы?

find . -type f -perm /+x

в любом случае, режим /, скорее всего, вам подойдет... вот страница руководства:

   -perm /mode
          Any  of  the  permission  bits mode are set for the file.  Symbolic modes are accepted in this form.  You must specify `u', `g' or `o' if you use a symbolic mode.  See the
          EXAMPLES section for some illustrative examples.  If no permission bits in mode are set, this test matches any file (the idea here is to be consistent with  the  behaviour
          of -perm -000).

ОБНОВЛЕНИЕ: верно, я думал, вы ищете нечетные числа (исполняемые)...

это должно работать (все еще используется 3-й постоянный параметр из find

Пример данных:

$ ls
000  001  002  003  004  005  006  007  010  020  030  040  050  060  070  100  200  300  400  500  600  700

Найти команду:

$ find . -type f \( -perm /u-x,g+x -o -perm /u-w,g+w -o -perm /u-r,g+r -o -perm /g-x,o+x -o -perm /g-w,o+w -o -perm /g-r,o+r -o -perm /u-x,o+x -o -perm /u-w,o+w -o -perm /u-r,o+r \) | sort
./001
./002
./003
./004
./005
./006
./007
./010
./020
./030
./040
./050
./060
./070

По сути, вы говорите: приведите мне файлы, где у группы есть права, а у владельца — нет, или файлы, где у мира есть права, а у группы — нет, или где у мира есть права, а у владельца — нет.

примечание: find имеет 3 постоянных параметра;

  • режим перм
  • постоянный режим
  • перм /режим

ps Я не совсем уверен в ценности этого...

Связанный контент