En FreeBSD, los nombres de los dispositivos los da el controlador, que maneja el dispositivo.
Entonces, cuando tiene una NIC RealTek, está controlada por el controlador re
y para separar varias NIC que están controladas por el controlador re, se numeran comenzando con 0. Consulteman 4 re
.
wlan
es un controlador diferente para las tarjetas Wi -Fi genéricas. Entonces, cuando desee escribir reglas para su Wi -Fi, debe usar wlan0
, ya que este es su único dispositivo Wi -Fi. Véaseman 4 wlan
.
El hecho de que usar re0
no produzca un error es extraño, pero podría ser que pf
pueda funcionar con dispositivos plug and play como USB -NIC.
Сценарий, вероятно, является примером, и вы должны изменить echo goodbye
, чтобы сделать что-то еще.
Предположим, что сценарий называется demo
. Когда вы запускаете его, как вы видели, он сначала выводит «привет». Затем он видит, идет ли вывод на терминал или нет, с намерением решить, используете ли вы
demo
или
demo | some other program
. Если это первый, то он просто отправляет вывод остальной части файла в файл. называется журнал
. В последнем случае if создает именованный канал
и запускает процесс tee
для копирования всего, что записано в именованный канал, в выходные данные сценария demo
(так какая-то другая прога
получит) и в файл с именем log
. Затем он организует отправку вывода остальной части файла в этот именованный канал. Он также устанавливает, что когда демо
завершается, он удаляет именованный канал.
Строка exec 1> & -
не нужна.
Конечным результатом всего этого является то, что слово «до свидания» записывается в файл «журнал». Если вы запустили демо | cat
вы увидите на экране как «привет», так и «до свидания».
Как отмечает @derobert в комментариях, именованный канал имеет предсказуемое имя. В зависимости от настройки umask
это может позволить кому-то испортить вывод демо
, либо прочитав его (так что tee
не увидит его), либо добавив дополнительные материал для тройник
для копирования. Это дополнение к ряду стандартных атак, которые можно использовать против известных или предсказуемых имен. Программные или жесткие ссылки можно настроить заранее, чтобы другие файлы открывались или усекались. В моей системе Linux mknod завершится ошибкой, если файл уже существует, но поскольку сценарий игнорирует эту ошибку, будет выполнено exec 1> $ npipe
.