Почему код выхода скрипта имеет другое значение, чем то, что возвращается?

Разобрался. После просмотра генерируемого кода и обращения к сайту Squid Guardian за примерами, мне стало ясно, что колонка Target Categories содержит правила черного списка / белого списка, которые применяются, когда acl находится в пределах указанного периода времени, а Target Categories for off-time - это правила черного списка / белого списка, которые применяются, когда acl находится вне указанного периода времени.

Синтаксис целевых правил

Копирование текста Целевые правила говорит обо всем (при условии, что вы уже сохранили его, он не обновляется автоматически при изменении значений...)

Обычно он выглядит так:

<black-lists applied inside time frame> all|deny [ <black-lists applied outside time frame> all|deny ]

Синтаксис работает следующим образом,

  • Все, что вне скобок - это то, что применяется внутри временного интервала.
    • <черные списки, применяемые внутри временного интервала>
  • Все, что внутри скобок - это то, что применяется вне временного интервала.
    • <черные списки, применяемые внутри временной рамки>
  • all или deny в конце означает, что после того, как остальные списки были пройдены без попаданий (слева направо), вы хотите разрешить доступ ко всем другим сайтам или запретить доступ ко всем другим сайтам?

Префиксы:

Applies to all specified black lists
! = Deny
  = allow
^ = whitelist

Пример

Теперь я понимаю, что я немного усложняю это (должен быть менее многословный синтаксис), и что если бы я узнал больше о синтаксисе разрешений, а не белых списков, то был бы какой-то способ использовать значения по умолчанию, но я еще не изучал этот вопрос, поэтому вот что я понял:

Предположим, что когда вы хотите установить что-то за пределами временного диапазона, вы хотите, чтобы действовали следующие черные списки, а любые другие сайты были свободной игрой:

  • blk_BL_adv
  • blk_BL_aggressive
  • blk_BL_dating
  • blk_BL_drugs
  • blk_BL_gamble
  • blk_BL_hacking
  • blk_BL_movies
  • blk_BL_news
  • blk_BL_politics
  • blk_BL_porn
  • blk_BL_radiotv
  • blk_BL_socialnet
  • blk_BL_spyware
  • blk_BL_warez

. ...и вы хотите, чтобы все остальное было доступно... тогда вы поставите all в конце.

Чтобы увидеть это в действии, вы увидите все между скобками:

[ !blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking !blk_BL_movies !blk_BL_news !blk_BL_politics !blk_BL_porn !blk_BL_radiotv !blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all ] 

Обратите внимание, что есть только ! (запретить) и нет (разрешить) и нет ^ (белый список)


Теперь предположим, что в течение этого периода времени мы хотели бы разрешить доступ к следующему, но при этом сохранить правила черного списка вне времени:

  • blk_BL_movies
  • blk_BL_news
  • blk_BL_politics
  • blk_BL_socialnet

Тогда мы копируем значения из нашего списка вне времени и заменяем ! (deny) на ^ (whitelist) только на перечисленные выше записи. Остальные остаются ! deny.

Список за пределами скобок становится

!blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking ^blk_BL_movies ^blk_BL_news ^blk_BL_politics !blk_BL_porn !blk_BL_radiotv ^blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all

... а также all в конце списка, чтобы разрешить остальные сайты.

Таким образом, когда мы соединяем все это вместе, получается:

 !blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking ^blk_BL_movies ^blk_BL_news ^blk_BL_politics !blk_BL_porn !blk_BL_radiotv ^blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all [ !blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking !blk_BL_movies !blk_BL_news !blk_BL_politics !blk_BL_porn !blk_BL_radiotv !blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all ] 

и это то, что сохраняется как значение в поле Целевые правила.


Когда я пытался разобраться в этом, я неосознанно обнаружил, что в vim воспроизвожу те же два списка, которые составляют GUI, взяв значение Target Rules, разделив его на списки внутри и вне скобок, взяв каждый из плоских списков и расположив их вертикально рядом друг с другом, после чего я понял, что происходит.

3
17.03.2016, 18:15
0 ответов

Теги

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