Насколько я знаю, это невозможно сделать только с файловыми дескрипторами, и кажется, что трюка, предложенного с помощью tee> / dev / tty
, достаточно для выполнения вашей работы.
Просто для того, чтобы поделиться информацией, я выполняю эту работу с помощью функции в моем профиле bash, например:
function teee { a="$(</dev/stdin)";echo -e "pipe in\n$a\npipe out\n" >/dev/stderr; echo "$a"; }
Тестирование:
$ cat file11 |teee|grep -Po '[A-Za-z]+[\s|\w]+,\s[0-9]+' file11 | teee |awk '{print $2}'
pipe in
Ubuntu, 120, 143, 154
Yggdrasil, 144, 170-171
Yood, Charles, 6
We Were Young, Bob, 178-179
Zawinski, Jamie, 204
pipe out
pipe in
Ubuntu, 120
Yggdrasil, 144
Charles, 6
Bob, 178
Jamie, 204
pipe out
120
144
6
178
204
Вы можете найти документацию об этом макросе в RHEL4, Red Hat SELinux Guide. Обратите внимание, что раздел об этом макросе исчез в последующих версиях руководства.
domain_auto_trans и domain_trans
Когда вы хотите, чтобы определенный переход был переходом по умолчанию для домена, используйте domain_auto_trans из core_macros.te. Он вызывает domain_trans() для выполнения фактической работы. Если вы просто хотите разрешить переход и обработать контекст с помощью setexeccon(), вы можете использовать просто domain_trans():
# domain_auto_trans(parent_domain, program_type, child_domain) define(`domain_auto_trans',` domain_trans($1,$2,$3) type_transition $1 $2:process $3; ')
Макрос domain_trans позволяет родительскому процессу получить типичный набор разрешений для перехода на новый домен. Он устанавливает несколько правил dontaudit, позволяет родительскому процессу выполнять программу, позволяет дочернему процессу использовать новый домен, обмениваться и использовать описания файлов с родительским процессом, а также писать обратно в старый домен через именованный канал (FIFO). Наконец, новому домену дается разрешение на чтение и выполнение программы, что делает программу точкой входа для домена.
Поскольку только один переход может быть переходом по умолчанию для данной пары типов, вы можете иметь одно правило domain_auto_trans, за которым следует несколько правил domain_trans, допускающих другие варианты. Они могут быть использованы приложением, заботящимся о безопасности.