Мне нужно просматривать только те файлы, которые находятся в папке & ниже каталога, в котором я нахожусь, и не имеют правильных разрешений: 700 или меньше для исполняемых файлов И 600 или меньше для неисполняемых файлов.

Каталог, в котором я нахожусь, и все те, что находятся под ним, занимают 3600 страниц в документе Word. Необходимо автоматизировать оболочку или командную строку (предпочтительно) для сервера Solaris 10. спасибо за любую помощь.

2 ответа2

2

Я полагаю, что вам нужно показать файлы, в которых для пользователя установлен хотя бы бит rw, равный 600, а 600 должен охватывать 700 rwx. Пытаться

находить . -perm -u = rw

если вы хотите, чтобы противоположное отрицало это, в c-shell вам нужно будет избежать отрицания или поставить обратную косую черту перед!

находить . \! -perm -u = rw

0

Это на самом деле довольно сложная проблема, как указано.

Под «исполняемым файлом» вы должны понимать что-то иное, чем --x------- разрешения - исполняемый бит устанавливается в файловом режиме. Я думаю, что вы имеете в виду: это скомпилированное изображение или сценарий оболочки или Java-байт-код и т.д.

Для этого вы должны использовать команду file, которая интерпретирует "магию" в начале файла: например, #!/bin/bash в самом начале файла сценария оболочки. Хорошая часть этого файла Solaris дает замечательные ответы - если вы человек. Он предоставляет много разных ответов.

Если вы программа, удачи. Обычный файл "data" может содержать такие слова, как "текст ASCII", "файл данных" и т.д. IMO, что вам нужно сделать, это получить уникальный список "типов" файлов, прежде чем пытаться использовать find, чтобы дифференцировать то, что вы хотите. Вы можете составить список с помощью команды find и awk.

cd /path/to/start/directory
find . -type f -exec /usr/bin/file {} \; | awk '!arr[$0]++' > /tmp/mylist

/tmp/mylist - это уникальный список этих "типов файлов". Следующий шаг - человек должен будет решить, какие записи в /tmp/my соответствуют определению исполняемого файла, и получить или переместить остальные в "обычную" кучу. Я пробовал это в прошлом, так что выделите время для этого.

Обновите свой пост здесь с дополнительной информацией, когда вы его получите. В зависимости от того, что вы получаете, кто-то может показать вам, что делать дальше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .