Необходимо использовать
grep "MyVariable = \(False\|True\)" FormA.frm
где \|
упорядочьте означают альтернативу и разделители \(
и \)
для группировки.
Ну, это зависит от того, что Вы подразумеваете под "файлом" и как точно библиотечные доступы это. Вот несколько подходов (оба клуджа), которые приходят на ум:
mkstemp
значение. mkstemp
возвращает число дескриптора файла несвязанному файлу. Можно затем создать $FOO/mypasswd
как символьная ссылка на /proc/self/fd/returned_number
. Существует маленькое окно, где файл существует (между открытым, и удалите связь), и что-то еще работающее, поскольку тот же пользователь мог открыть его и держать дескриптор файла для позже чтения пароля. Можно быть уверены, что это не будет записано в диск, если временный каталог будет на tmpfs.seek
файл паролей, использовать pipe
/pipe2
для создания дескрипторов файлов затем возобновите как выше символьную ссылку. Необходимо будет разветвить дочерний процесс для обработки питания пароля к каналу.LD_PRELOAD
(или другие динамические приемы компоновщика) для "зафиксированного" библиотеки путем прерывания open
/read
/close
, и подайте его пароль от где-нибудь нормального.Ни один из них не действительно безопасен от других процессов. Другие процессы, работающие как тот же пользователь, могли, например, ptrace
Ваш процесс и считал пароль непосредственно из памяти.
#!/bin/bash
exec 3<>file
rm file
exec program
Быть точным: существует состояние состязания. И программа должна использовать дескриптор файла. Если необходимо передать путь к файлу, затем используют /proc/self/fd/3
. Но теоретически файл (даже при том, что удаленный) доступен через этот путь proc для других процессов, также.
>
открывает файл для записи, <
для чтения, и <>
для чтения и записи. Это устанавливает связь от FD 3 до определенного inode даже нет никакой записи файла ни в каком каталоге для него (предположил, что не было никакого второго hardlink перед rm
). Когда процесс выходит, FD закрывается, и подсчет ссылок inode уменьшен к нулю, эффективно удалив файл (выпускающий выделенные блоки).
– Hauke Laging
04.05.2013, 15:45