Действительно используйте dmcrypt, это - фактическая подсистема шифрования стандартного диска в Linux.
На машинах разработчика установите cryptmount и настройте его, чтобы позволить монтироваться как некорневой пользователь. Это является громоздким, поскольку у Вас есть к hardcode путь к изображению (и точка монтирования) в /etc/cryptmount/cmtab
.
upgrade {
keyformat=luks
dev=/home/bob/upgrade/image.enc
dir=/mnt/upgrade
}
Смонтироваться и размонтироваться:
cryptmount -m upgrade
cryptmount -u upgrade
С другой стороны, настроенный sudo управляет, чтобы позволить разработчикам работать cryptsetup
и losetup
без пароля.
Cmnd_Alias CryptLoop = cryptsetup luksOpen * *, cryptsetup remove *, losetup * *
bob ALL=(ALL) NOPASSWD: CryptLoop
sed '/timetosa/d' <test
... сделаю это. Альтернативно:
sed -n '/timetosa/!p' <test
все еще, хотя (разрешено ли это или нет) :
grep -v timetosa <test
... будет самым исполнительным решением трех - и, вероятно, значительным краем.
Благодаря @sparhawk я нашел свой путь к документации Zaproxy документации . Основываясь на этом:
... И следующее я думаю, что вы пытаетесь фильтровать Contexts ? Согласно документам, вы можете сделать как включать , так и , и Списки исключения:
Итак, вы можете исключить некоторых ваших предыдущих включений.
Тем не менее, это может быть, это может быть первым ребенком этого не полностью Неренет Необходимость - Документы также упоминают об этом в разделе :
вызывают приложения
Так, например, NMAP
может быть вызван прохождение сайта, которое вы хотите, чтобы он сканировать.
Приложения настраиваются с использованием параметров на экране параметров .
Ваша ~/Библиотека, ~/Документы, Приложения... и т.д. все создаются с 700 в качестве разрешения. Поиск пропустит их. Если вы хотите, чтобы они были включены в вашу базу данных поиска, измените разрешение на 755.
chmod 755 ~/Library
sudo /usr/libexec/locate.updatedb
-121--111630- Ниже приведен способ проверки, совместимый с POSIX, является ли dir
пустым с использованием только встроенных конструкций оболочки. Команда set
устанавливает позиционные аргументы в файлы с точками (включая всегда существующие .
и ..
), за которыми следуют файлы без точек. Если каталог пуст, то . *
glob соответствует только .
и ..
, и *
не совпадает ни с чем таким образом остается нерасширенным.
set dir/.* dir/*
[ "$1" = "dir/." ] && [ "$2" = "dir/.." ] && ! [ -e "$3" ] && ! [ -L "$3" ]
Это работает на ATT ksh, но не работает с некоторыми оболочками, которые пропускают .
и ..
записей. Чтобы быть более портативным, необходимо также разрешить . *
ничего не соответствовать.
set dir/.* dir/*
case $# in
0) true;; # can't happen in a standard shell, this is for shells with nullglob
2) { [ "$1" = "dir/.*" ] && [ "$2" = "dir/*" ] && ! [ -e "$1" ] && ! [ -L "$1" ] && ! [ -e "$2" ] && ! [ -L "$2" ]; } ||
{ [ "$1" = "dir/." ] && [ "$2" = "dir/.." ]; };;
3) [ "$1" = "dir/." ] && [ "$2" = "dir/.." ] && ! [ -e "$3" ] && ! [ -L "$3" ];;
*) false;;
esac
Достаточно свежие версии ksh позволяют упростить тест, но я думаю, что AIX слишком старые (даже его ksh93
). Вот как можно проверить, является ли dir
пустым в достаточно недавнем ksh93:
FIGNORE='.?(.)'; set -- ~(N)dir/*; [[ $# -eq 0 ]]
или же
FIGNORE=; set -- dir/*; [[ $# -eq 2 ]]
Альтернативный подход заключается в вызове find
. Это проще тем, что find
не обрабатывает файлы точек специально и не имеет ничего похожего на трудности оболочки различать образец, который соответствует одному файлу, и образцу, который остается нерасчетным, потому что он ничего не соответствует.
[ -z "$(find dir/. -name . -o -print | head -n 1)" ]
-121--111578- Регулярные языки закрыты при дополнении, поэтому для каждого регулярного выражения существует регулярное выражение, которое точно соответствует входам, которые не совпадают с исходным regexp.
Однако в худшем случае наименьший regexp, соответствующий языку дополнения, имеет длину, экспоненциальную по длине исходного regexp. Таким образом, хотя regexp гарантированно существует, он не гарантированно будет простым. Он может быть вычислен алгоритмически , если он действительно вам нужен.
Оператор ^
для привязки regexp не является релевантным. Вы можете думать о ^
в наборе символов, как в [^ a-z]
, означающем «любой символ, не являющийся строчной буквой». Это всего лишь часть контекстной нотации для наборов символов, не полезно дополнять набор последовательностей.
Некоторые механизмы регулярных выражений, такие как широко используемая PCRE, поддерживают дополнительные операторы, помимо традиционных, включая уточняющие утверждения . Отрицательный взгляд вперед обеспечивает простой способ свести на нет регулярное выражение без необходимости разбивать его на части. Проверьте документацию программного обеспечения, чтобы узнать, какие регулярные выражения оно поддерживает.
^!(.*timetosa).*$
Большинство систем не нуждаются в дополнении regexp, поскольку вы можете достичь того же эффекта, используя соответствующий флаг инверсии (например, grep -v
) или тщательно упорядочив правила в настройках первого соответствия (если он соответствует . * расписания. *
, то ничего не делайте и прекращайте сопоставление правил; если он совпадает с . *
, то сделайте что-нибудь).