Во-первых, конечно, возможно иметь вирусы под Unix и подобными Unix операционными системами, такими как Linux. Изобретатель термина компьютерный вирус, Fred Cohen, сделал свои первые эксперименты под 4.3BSD. Документ с практическими рекомендациями существует для записи вирусов Linux, хотя похоже, что это не имело обновления с 2003.
Во-вторых, исходный код для компьютерных вирусов sh-сценария плавал вокруг для лучше, чем 20 лет. См. статью Tom Duff 1988 года и статью Doug McIllroy 1988 года. Позже, платформенно независимый ЛАТЕКСНЫЙ вирус был разработан для конференции. Работает на Windows и Linux и *BSD. Естественно, его эффекты хуже в соответствии с Windows...
В-третьих, горстка реальных, живых компьютерных вирусов (по крайней мере), для Linux появилась, хотя не ясно, находились ли больше чем 2 или 3 из них (RST.a и RST.b) когда-нибудь "в дикой природе".
Так, реальным вопросом не является Linux/Unix/BSD, может сократить компьютерные вирусы? а скорее, Учитывая насколько большой рабочий стол Linux и население сервера, почему у того населения нет вида удивительной эпидемии вирусов, которые притягивает Windows?
Я подозреваю, что причина имеет некоторое отношение к умеренной защите, данной традиционным пользователем UNIX/group/other дискреционные меры защиты и сломанная основа программного обеспечения, которую поддерживает Linux. Я имею в виду, мой сервер все еще выполняет Slackware 12.1, но с пользовательски скомпилированным ядром и большим количеством перекомпилированных пакетов. Мой рабочий стол выполняет Arch, который является прокручивающимся выпуском. Даже при том, что они оба запускают "Linux", они не имеют много общего.
Состояние вирусов на Linux может на самом деле быть нормальным равновесием. Ситуация в Windows могла бы быть "королем дракона", действительно необычной ситуацией. Windows API является безумно барочным, Win32, NT-встроенный-API, волшебные имена устройств как LPT
, CON
, AUX
это может работать из любого каталога, ACLs, который никто не понимает, традиция однопользовательских, нет, единственного пользователя root, машин, отмечая исполняемый файл файлов при помощи части имени файла (.exe
), все это, вероятно, способствует состоянию вредоносного программного обеспечения в Windows.
Вы смотрите на него неправильный путь. no_proxy
переменная среды перечисляет доменные суффиксы, не префиксы. Из документации:
no_proxy
: Эта переменная должна содержать разделенный запятыми список прокси доменов верхнего уровня, не должен использоваться для.
Таким образом для дюйм/с, у Вас есть две опции:
1) Добавьте каждый IP полностью:
printf -v no_proxy '%s,' 10.1.{1..255}.{1..255};
export no_proxy="${no_proxy%,}";
2) Переименовать wget
кому: wget-original
и запишите сценарий обертки (названный wget
) это ищет IP для хоста данного URL и определяет, должен ли он использовать прокси или нет:
#!/bin/bash
ip='';
for arg; do
# parse arg; if it's a URL, determine the IP address
done;
if [[ "$ip" =~ ^10\.1\. ]]; then
wget-original --no-proxy "$@";
else
wget-original "$@";
fi;
info wget
говорит:
`no_proxy'
This variable should contain a comma-separated list of domain
extensions proxy should _not_ be used for. For instance, if the
value of `no_proxy' is `.mit.edu', proxy will not be used to
retrieve documents from MIT.
Таким образом, переменная должна содержать список доменов, не диапазоны IP. Необходимо будет настроить надлежащие локальные псевдонимы для локальных машин в /etc/hosts
файл (файлы).
Кроме этого, примите во внимание, что установка переменной среды не гарантирует, что прокси будет или не использоваться. Это - просто информация, которая может использоваться программами, которые поддерживают его.
Вот несколько более простой (однострочный) подход, основанный на решении janmoesen.
export no_proxy=`echo 10.1.1.{1..255} | sed 's/ /,/g'`
, который был дополнительно улучшен на основе ввода Кори Рингдала:
export no_proxy="`echo 10.1.1.{1..254},` 10.1.1.255"
sed подавляет все аргументы, переданные из расширения 10.1. {1..255}. {1..255}
, либо в его коде, либо в моем. Поэтому, если вам действительно нужно расширить IP-адреса до 256 * 256, вы можете дополнительно адаптировать подход Кори Рингдала, но если вам нужно всего 256 или около того, любой из них должен идеально работать для вас.
Я предполагаю, что версия, в которой раскрываются 2 октета, будет выглядеть примерно так:
export no_proxy="`echo 10.1.{1..255}.{1..254},` 10.1.255.255"
но iTerm выдает мне ошибки о том, что списки аргументов слишком длинные, поэтому я не могу точно сказать, есть ли решение для сделать эту работу ...
Не совсем правильное решение, но оно может решить вашу проблему. Если вы предполагаете, что доступ к чему-либо снаружи прокси-сервера будет осуществляться с использованием DNS-имен -, а не напрямую с использованием IP-адресов -, вы можете установить его как:
export no_proxy=0,1,2,3,4,5,6,7,8,9
Насколько мне известно, ни один верхний домен не заканчивается цифрой, поэтому, если это так, это должен быть IP-адрес -.
no_proxy
, кажется, соответствует хвостовой части хоста по крайней мере с двумя символами, поэтому набор no_proxy
, содержащий 100 хвостовых частей ipv4, пропустит любой URL-адрес ipv4
printf -v no_proxy '%s,' {10..99}
export no_proxy=".0,.1,.2,.3,.4,.5,.6,.7,.8,.9,$no_proxy"
curl -v http://any-ip/
/etc/environment
файл, это могло повредить Ваш сервер. – Thomas Decaux 04.12.2017, 17:56