Сценарий для поиска файлов меньше разрешений, чем 750?

Сообщение, по-видимому, исходит от GNU tr и, возможно, связано с какой-то проблемой с настройками локали. На странице info для tr предлагается поместить - последним в наборе, чтобы не путать его как часть диапазона , например,

cat myfile | tr '_[]()/-' ' '
0
29.07.2018, 19:01
1 ответ

if any are found to be less permissive than 750

Если биты разрешения равны 0750, это соответствует rwxr-x---. Все, что имеет, например. биты, установленные в «другой» группе, (в основном по определению )более разрешительны. Точно так же что-то вроде 0700менее разрешающее (, оно не дает никакого доступа к группе ).

Однако что-то вроде 0644/ rw-r--r--было бы как более, так и менее разрешающим, так как разрешало бы доступ на чтение «другим», но не разрешало бы доступ на выполнение никому.

To Clarify: I need to ensure NONE of the files in the home directory have ANY "other" attributes.

Это, конечно, отличается от приведенного выше определения. Но также проще искать файлы, в которых установлен какой-то набор битов разрешений, поэтому давайте сделаем это вместо того, чтобы искать файлы, которые имеют только подмножество некоторого набора битов разрешений.

Предполагая, что у вас есть поиск GNU, есть условие -perm /mode, которое означает «Для файла установлены любые биты разрешения режима ». (см. справочную страницу ). Таким образом, find -type f -perm /027найдет любые обычные файлы, в которых установлен какой-либо из битов ----w-rwx. Аналогичное состояние, например,. Найти FreeBSD можно на странице руководства-perm +027().

Так что, возможно, что-то в этом направлении:

x=$(find "$dir" -type f -perm /027 -print -quit)
if [ "$x" != "" ]; then
    echo "some files were found"
fi
1
28.01.2020, 02:42

Теги

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