Как проверить наличие исполняемых файлов в данном каталоге и его подкаталогах?

Я понимаю, что нехорошо хранить принадлежащие себе файлы в своей домашней области, которые являются исполняемыми, поэтому мне нужен скрипт / инструмент, который рекурсивно проверяет данный каталог (в данном случае мой домашний каталог) и все его подкаталоги и т. д. (следует, очевидно, также проверять скрытые файлы и папки) и выводить имя и расположение любых исполняемых файлов, а также указывать владельца файла. Я использую Ubuntu GNOME 15.10 с GNOME 3.18, возможно ли что-то подобное?

0
задан 1 May 2016 в 22:52

2 ответа

find команда наиболее подходит для этой задачи, в сочетании со статистикой, Вы видите владельца файла

find $HOME -type f -executable -printf "FILE:%p OWNER: "   -exec stat -c "%U" {} \;

Или просто с find printf:

find $HOME -executable -printf "FILE:%p OWNER:%u\n " 

И если Вы достаточно предприимчивы, вот pythonic решение:

import os

for root, dirs, files in os.walk( os.getcwd()  ):
    for name in files:
        file=os.path.join(root,name)
        owner_uid=os.stat(file).st_uid
        if os.access(file,os.X_OK):
           print(file,owner_uid)
1
ответ дан 2 May 2016 в 08:52
  • 1
    Некоторые ключи выглядят немного отличающимися. Например: паб [SC] rsa4096 2012-05-11 8439 38DF 228D 22F7 D94A A3F0 EFE2 1092 B374 2BC0 uid [неизвестный] Образ CD Ubuntu Автоматический Ключ подписи (2012) < cdimage@ubuntu.com> keyid является ' 8439 38DF 228D 22F7 D94A A3F0 EFE2 B374 2BC0 1092' – zorkerz 26 October 2017 в 14:40

find ~ -type f -executable должен работать. Возможно, добавьте -exec ls -l {} \; для получения пользователя и группы.

3
ответ дан 2 May 2016 в 08:52

Другие вопросы по тегам:

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