Каковы существенные различия между трассой и трассировкой?

Вы можете использовать переменную среды $DISPLAY в качестве триггера в состоянии if. Обычно, когда эта переменная имеет значение, вы можете запускать графические приложения.

Вот пример bash:

if [[ -z $DISPLAY ]]
then
    nano
else
    gedit
fi

Оператор -z вернет true, когда envvar $DISPLAY пуст и ваш скрипт будет запущен nano, во всех в других случаях он будет работать gedit.

В соответствии с этим комментарием :

На большинстве современных настольных компьютеров Wayland (например, рабочий стол по умолчанию в Fedora и Ubuntu), $DISPLAY по-прежнему настроен из-за обратной совместимости (через XWayland), но для более надежного скрипта было бы хорошо протестировать как для $DISPLAY, так и для $WAYLAND_DISPLAY, чтобы быть уверенным ,

Я бы предложил изменить тестовое выражение следующим образом:

[[ -z ${DISPLAY}${WAYLAND_DISPLAY} ]]

Таким образом, значения двух переменных будут объединены в общую строку, которая будет обработана с помощью оператора -z.

Ссылки:

Расширенное руководство по созданию Bash-скриптов: 7. Тесты Advanced Bash-Scripting Guide: 7.1. Test Constructs Advanced Bash-Scripting Guide: 7.3. Другие операторы сравнения

1
задан 13 December 2013 в 02:51

3 ответа

Вы можете использовать traceroute для расширенной сетевой трассировки, вы можете выбирать между протоколами IPv4 и Ipv6, вы также можете выбирать между форматами данных ICMP, TCP или UDP для зонда.

Итак traceroute имеет более продвинутые параметры, чем tracepath, который использует UDP-пакеты для трассировки.

Теперь о привилегиях суперпользователя:

вы можете использовать traceroute как с обычным пользователем, так и с суперпользователем, который зависит на привилегиях суперпользователя , которые вы хотите использовать, вот пример:

Здесь мы используем UDP-пакеты, которым не нужны привилегии суперпользователя

enter image description here

Здесь мы используем UDP эхо-пакеты, которым нужны привилегии.

По ICMP-пакетам вы можете сделать DDOS-атака.

Чтобы узнать о вариантах ICMP Traceroute Man Page

Чтобы просмотреть тип опций traceroute в терминале man traceroute

Для ICMP необходимы привилегии суперпользователя, чтобы обеспечить просто администраторы могут использовать некоторые из своих опций, так как они могут использоваться для выполнения ping смерти и сбора информации о конкретной сети, привилегия здесь даст суперпользователю возможность изменять параметры с использованием ICMP-пакетов.

Чтобы увидеть это, когда вы пытаетесь выполнить ping на таких сайтах, как www.microsoft.com, ваш ping не удастся даже в Интернете, а также потому, что маршрутизаторы Microsoft блокируют ICMP_requests.

Таким образом, linux защищает систему от непривилегированного пользователя, поэтому они не могут использовать эти команды для атаки.

8
ответ дан 25 May 2018 в 13:23
  • 1
    Как правило, ограничения на непривилегированные пользователи используются для защиты системы от , подвергшегося атаке , а не от использования в качестве вектора для атаки на другие системы. Это не имеет для меня никакого смысла - знаете ли вы о какой-либо документации, которая поддерживает это? – Iszi 5 March 2014 в 20:37

Я думаю, вам нужно прочитать это http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html

Из приведенной выше ссылки:

TracePath Tracepath отслеживает путь к назначенному сетевому адресу, сообщая о «времени жизни» или о задержке TTL и максимальных единицах передачи (MTU) на этом пути. Эта команда может выполняться любым пользователем, имеющим доступ к командной строке.

TracePath

Traceroute по сути такой же, как Tracepath, за исключением того, что по умолчанию он будет давать только значение TTL. Если вам нужны дополнительные данные, вы должны запросить эти переменные в командной строке. Кроме того, traceroute требует доступа суперпользователя для запуска команды в ящике Linux, а некоторые продвинутые запросы данных могут не поддерживаться всеми маршрутизаторами по пути. В среде Windows любой пользователь с доступом к командной строке может запускать Traceroute.
4
ответ дан 25 May 2018 в 13:23
  • 1
    Спасибо за ссылку, но не могли бы вы поместить какой-то фактический контент в свой ответ? – Iszi 19 March 2012 в 20:58
  • 2
    Привет bodhi.zazen, спасибо за улучшение моего сообщения. :) – Ten-Coin 20 March 2012 в 19:10
  • 3
    Спасибо за разъяснения. Тем не менее, ответ здесь (еще не просмотрел ссылку) по-прежнему отсутствует две части вопроса: Почему делает traceroute для доступа суперпользователя (тем более, что на самом деле это кажется [d1 ] less , чем tracepath по умолчанию)? И помимо сценариев, где вы не суперпользователя, почему вы должны выбирать один за другим? – Iszi 20 March 2012 в 19:13

ping и traceroute используют протокол ICMP. Подобно UDP и TCP, это доступно через обычный сокет API. Только номера портов UDP и TCP менее 1024 защищены от использования, кроме как от root. ICMP доступен всем пользователям.

Если вы действительно хотите посмотреть, как работают ping и traceroute, вы можете загрузить пример реализации кода C из CodeProject.

Короче говоря, они просто открыть ICMP-сокет, а traceroute изменяет приращения TTL с помощью setsockopt до достижения цели.

Источник: CodeProject

1
ответ дан 25 May 2018 в 13:23
  • 1
    Также; tracepath использует UDP, который в дополнение к параметрам UDP в самом traceroute не требует повышенных привилегий. – Ahmadgeo 7 March 2014 в 21:22

Другие вопросы по тегам:

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