Я не проверил, что Вы получите то, что Вы хотите с ним, но первой вещью, которую я попробовал бы, является контрольная подсистема. Удостоверьтесь что auditd
демон запускается, затем используйте auditctl
настраивать то, что Вы хотите зарегистрировать. Для обычных доступов к файловой системе Вы сделали бы
auditctl -w /path/to/directory
auditctl -a exit,always -S fnctl -S open -S flock -F dir=/path/to/directory
-S
опция может использоваться для ограничения входа определенным syscalls. Журналы появляются в /var/log/audit/audit.log
на Debian, и вероятно на Fedora также.
Если Вы действительно знаете, какой процесс (процессы) может заблокировать файл, то рассмотрите выполнение strace
на этих процессах (и только рассмотрение связанных с файлом системных вызовов или дальнейшее ограничение определенным syscalls).
strace -s9999 -o foo.strace -e file foo
Is there a way to pass multiple filenames to gpg to have it encrypt all of
them in one go?
Нет, нет.
Вы, вероятно, захотите передать пароль с одной из следующих gpg опций (последний был бы самым безопасным выбором):
--passphrase
--passphrase-file
--passphrase-fd
Так как GnuPG не поддерживает это непосредственно, способ сделать, это должно было бы добавить другой слой, например, использование tar
.
tar c project1.7z project2.7z | gpg --cipher-algo AES256 --compression-algo BZIP2 -co projects.gpg
И извлечь:
gpg -d projects.gpg | tar x
С Вами оставят project1.7z
и project2.7z
. Ваш сценарий может затем взять, где Вы кончили.
Да, есть простой способ:
for x in *; do
gpg -r (yourencrytionkey.com) -o $x.pgp -e $x
done
Сегодня удалось сделать что-то вроде этого:
Изменил каталог на каталог, содержащий целевые файлы, и запустил сценарий Bash, чтобы найти требуемые file_names и перечислить их в текстовый файл, который я назвал found.txt
.
Запустить сценарий Bash с просьбой gpg2 прочитать каждое имя файла в цикле и в переменную памяти и в том же цикле зашифровать его, используя мой ключ подписи и указав, что он предназначен для чтения мной. gpg2 выводит всплывающее окно для ввода вашей парольной фразы, во всплывающем окне есть небольшой флажок, где вы можете выбрать, чтобы ваша парольная фраза оставалась активной для сеанса. Плохая практика, но не так уж и плохо, если после этого вы не в сети и сразу после сеанса шифрования отключаете питание.
Единственная проблема заключалась в том, что нужно было разобраться с тупиком. Так что я сел, положив палец на клавишу Y, и зашифровал 51 файл nos менее чем за минуту.
Сценарии приведены ниже:
Сценарий поиска представлял собой файл с именем FindFilesAndListtoTextfile.sh
:
#! /usr/bin/bash
#Try this to list the files you want using the appropriate file identifier i.p.o "DSCN.*":
source="/home/myself/Whatever #note no gaps on either side of the equal-to sign
target="/home/myself/Whatever/found.txt"
find $source -name "*DSCN*" -type f > $target
Сценарий шифрования назывался ReadFilenameAndEncrypt.sh:
#!/bin/bash
line="/home/myself/Whatever/found.txt"
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
gpg2 -e -u mysecretkeyID -r mysecretkeyID "$line"
done < "$1"
Это должно быть запустить как обычный пользователь:
$ bash ReadFilenameAndEncrypt.sh found.txt
Надеюсь, это поможет. Не понял, как избежать т / п.
echo "Введите пароль:"
читать пароль
найти. -type f -exec gpg --passphrase $ password -c {} \;
Хмммммм GPG запрашивает с GraphicMessageBox пароль для каждого файла.
Итак, я решил использовать CRYBULL (программу криптографии, которую я создал) в C-ANSI. Вы можете бесплатно скачать на сайте www.labolida.com
find. -type f -exec crybull {} {} .cry $ password encode \;
Следующая команда работает для меня, пока у меня нет имен файлов с пробелами в них.
for file in $(ls | grep -v ".gpg"); do gpg -c --cipher-algo AES256 --compress-algo 1 --batch --passphrase "<password>" $file && rm -f $file; done
Вы также можете использовать команду find.
for file in $(find /home -type f | grep -v ".gpg"); do gpg -c --cipher-algo AES256 --compress-algo 1 --batch --passphrase "<password>" $file && rm -f $file; done
Наконец, если вы хотите использовать файл для пароля, используйте:
--passphrase-file <filename>
Текущий gpg имеет опцию для этого:
gpg --encrypt-files --recipient me@example.com *.txt
создает файл .txt.asc
для каждого файла .txt
.
Ссылки:
man gpg
опции --verify-files
, --encrypt-files
, --decrypt-files
и--multifile