Как сказать дураку не ожидать программы вложения для возврата?

Для разъяснения, в то время как VPN работает, SSH из внешних источников повреждается, но до выполнения VPN, работал SSH из всех источников. Проблема сводится к таблице маршрутизации. Поскольку Вы показываете выше, маршрут по умолчанию (0.0.0.0) идет в tun0. Я не понимаю то, что с забавной сетевой маской 128.0.0.0, но это заставило бы любой внешний адрес, запускающийся с 1-126 использовать tun0. Не имеет значения, куда входящие пакеты прибывают из для SSH, исходящие пакеты только выйдут, где они соответствуют в таблице маршрутизации. Я сделал необычные конфигурации как это сам. Стандартное решение, которое я использую для этого вида проблемы, состоит в том, чтобы использовать поступление правила SNAT, которые изменяют исходный адрес входящего пакета к внутреннему адресу IPv4 маршрутизатора. Это заставит это появляться как внутреннее соединение к ПК, и это счастливо направит его назад к маршрутизатору, так как это находится на локальном месте назначения в таблице маршрутизации выше. Маршрутизатор затем инвертирует SNAT и передаст его обратно интервал дикая местность, которая будет сниффинговой и подталкиваться всеми низкими хакерами там. Это - SNAT, должен существовать как iptables правило о маршрутизаторе, не ПК в сети. Если Вы просто используете что-то как запас Linksys маршрутизатор WRT, Вам, возможно, придется установить OpenWRT или подобный на нем для получения этого вида управления правилом брандмауэра/NAT.

9
19.02.2013, 22:49
2 ответа

Вот то, что я использую:

.mailcap:

application/*; mkdir -p /tmp/mutt \; cp %s /tmp/mutt \; xdg-open /tmp/mutt/$(basename %s) &

.mutt/muttrc:

folder-hook . `rm -f /tmp/mutt/*`

Каждый раз, когда попытка открыть вложение предпринята, она копируется в специализированном временном каталоге, и копия открыта.
Каждый раз Вы запускаете mutt, очищены любые непрекращающиеся копии.

Вы можете или, возможно, не нуждаетесь & в конце, в зависимости от команды Вы использовали. (Некоторые версии xdg-open блокируются, в то время как другие не.)

Само собой разумеется, можно использовать это с любой командой. xdg-open просто удобный универсальный обработчик.

8
27.01.2020, 20:06
  • 1
    Это - прохладный общий способ заменить mailcap!Спасибо! –  Profpatsch 17.01.2014, 13:02
  • 2
    мне было нужно & после xdg-открытый. Не может повредить иметь его там в любом случае, правильно? –  Profpatsch 17.01.2014, 13:06
  • 3
    Возможно, Вы могли сделать вопрос: Как заменить mailcap с xdg-open? и копия тот ответ. Я уверен, что существуют некоторые люди с тем вопросом. –  Profpatsch 17.01.2014, 13:09
  • 4
    Не Был бы это быть проблематичным, если бы у Вас есть несколько приложений, открытых папками изменения дурака, вытер бы что-либо в Вашей/tmp/mutt/папке. С тех пор xdg-открытый мог бы или не мог бы заблокироваться, я просто использую приложение (Firefox) text/html; t=$(mktemp /tmp/XXXXXXXXXX) \; cp %s "$t" \; /bin/sh -c "firefox $t \; rm $t \;" & –  Derek Schrock 21.04.2015, 18:22

Вы могли использовать команду обертки что:

  1. переименовывает файл
  2. выполняет средство просмотра в фоне
  3. моется, когда средство просмотра возвратилось вместо разрешения mutt сделайте это.

Что-то как:

#! /bin/sh -

TMPDIR=$(
  mutt -D 2> /dev/null |
    awk -F\" '
      $1 == "tmpdir=" {
        gsub("~", ENVIRON["HOME"], $2)
        print $2
        exit
      }'
)
[ -n "$TMPDIR" ] || exit
export TMPDIR

nargs=$#
nfiles=0
for i do
  case $i in
    ("$TMPDIR"/?*)
      new_file=$(mktemp -ut "XXXXX${i##*/}") &&
        mv -- "$i" "$new_file" &&
        nfiles=$(($nfiles + 1)) &&
        set -- "$new_file" "$@" "$new_file" &&
        continue
  esac
  set -- "$@" "$i"
done

run_command() (
  shift "$(($nargs + $nfiles))"
  exec "$@"
)

(
  run_command "$@"
  while [ "$nfiles" -gt 0 ]; do
    set -- "$@" "$1"
    shift
    nfiles=$(($nfiles - 1))
  done
  shift "$((2*$nargs))"
  rm -f -- "$@"
) &

И помещенный что-то как:

image/*; muttv eog %s;

Где muttv тот сценарий выше.

Вышеупомянутое не делает предположения на том, где имя (имена) файла появляется (s) в списке аргументов или какой символ они содержат... Который является, почему мы сначала спрашиваем mutt что tmpdir (таким образом, мы используем это для определения то, что является файлами для просмотра).

В большинстве случаев это было бы излишество, хотя, и поскольку Gilles указывает, может не работать, если tmpdir указан как относительно Вашей папки почтового ящика.

Более простой был бы:

#! /bin/sh -
nargs=$#
eval "file=\${$nargs}"
newfile=$(dirname -- "$file")/new-$(basename -- "$file")
while [ "$nargs" -gt 1 ]; do
  set -- "$@" "$1"
  shift
  nargs=$(($nargs - 1))
done
shift
mv -- "$file" "$newfile" || exit
(
  "$@" "$newfile"
  rm -f -- "$newfile"
) &

Замена mv с cp если Вы не хотите касаться исходного файла, обеспеченного mutt.

3
27.01.2020, 20:06
  • 1
    Черт возьми Вы просто писали это с нуля? Мне потребовались 15 минут для понимания то, что Вы делаете, и даже сейчас я не уверен в том, как некоторые части работают точно. –  Profpatsch 20.02.2013, 02:19
  • 2
    Сбои с моим .muttrc потому что tmpdir="=tmp". Почему бы не захватить каталог от имени файла? –  Gilles 'SO- stop being evil' 20.02.2013, 21:53
  • 3
    @Gilles, положительная сторона у "+", "="... Самое главное должно было получить tmpdir от дурака, таким образом, мы знаем, какой из аргументов является именем файла. Все это - немного излишества, хотя так или иначе как в 99% случаев имя файла собирается произойти только однажды и быть последним аргументом, и мы можем просто переименовать его к new-$original –  Stéphane Chazelas 20.02.2013, 21:58
  • 4
    Другая точка - то, что этот сценарий записи не всегда называют от имени дурака, это можно было назвать при обстоятельствах, где файл не является временным файлом и не должен быть удален. (Я часто звоню see на командной строке я не ожидаю, что это удалит файл, даже если это будет в /tmp!) Решение: сделайте жесткую ссылку. –  Gilles 'SO- stop being evil' 20.02.2013, 22:03
  • 5
    @Gilles, я думал о hardlink, но для дурака, он не работает, потому что после выполнения команды, дурак усекает файл прежде, чем удалить связь с ним. (открытый с O_TRUNC и близко, я действительно проверял его). –  Stéphane Chazelas 20.02.2013, 22:30

Теги

Похожие вопросы