Отключить запрос на аутентификацию при автозаполнении команды, требующей привилегий root.

Просто чтобы подробнее рассказать о правильном ответе Жиля:

Из справочной страницы TheKelleys.org DNSMasq

-A, --address=//[domain/][]

Укажите возвращаемый IP-адрес для любого хоста в данные домены. Запросы в доменах никогда не пересылаются и всегда отвечают с указанным IP-адресом, который может быть IPv4 или IPv6. Чтобы указать для домена адреса IPv4 и IPv6, используйте повторяющиеся флаги -A. Обратите внимание, что / etc / hosts и аренда DHCP переопределяют это для отдельных имен. Обычно это используется для перенаправления всего домена doubleclick.net на некоторый дружественный локальный веб-сервер, чтобы избежать рекламных баннеров. Спецификация домена работает так же, как и для --server, с дополнительной возможностью, что / # / соответствует любому домену. Таким образом, --address = / # / 1.2.3.4 всегда будет возвращать 1.2.3.4 для любого запроса, на который не был дан ответ от / etc / hosts или DHCP и который не был отправлен на вышестоящий сервер имен более конкретной директивой --server. . Что касается --server, один или несколько доменов без адреса возвращают ответ без такого домена, поэтому --address = / example.com / эквивалентен --server = / example.com / и возвращает, например, NXDOMAIN. com и все его поддомены.

--host-record=[,....],[],[][,]

Добавить записи A, AAAA и PTR в DNS. Это добавляет одно или несколько имен в DNS с соответствующими записями IPv4 (A) и IPv6 (AAAA). Имя может появиться более чем в одной записи хоста, и поэтому ему может быть назначено более одного адреса. Только первый адрес создает запись PTR, связывающую адрес с именем. Это то же правило, что и при чтении hosts-файлов. Параметры host-record считаются считанными до host-файлов, поэтому появившееся там имя запрещает создание PTR-записи, если оно также присутствует в hosts-файле. В отличие от файлов-хостов, имена не раскрываются, даже если действует расширение-хосты. Короткие и длинные имена могут появляться в одной и той же записи хоста, например. --host-record = laptop, laptop.thekelleys.org, 192.168.0.1,1234 :: 100 Если задано время жизни, оно отменяет значение по умолчанию, равное нулю или значению - -local-ttl. Значение представляет собой положительное целое число и дает время жизни в секундах.

3
15.09.2018, 19:33
1 ответ

Обычно, чтобы увидеть завершение, связанное с такой командой, как firewall-cmd, можно использовать complete -p firewall-cmd и ожидать увидеть что-то вроде complete -F _firewall_cmd firewall-cmd возвращается. Затем можно проверить функцию _firewall_cmd , используя тип _firewall_cmd .

Пакет завершения bash для Debian использует команду complete -D для настройки функции завершения по умолчанию, которая проверяет, доступно ли конкретное завершение при первом использовании, и если да загружает это.

Поэтому важно один раз попытаться завершить, прежде чем смотреть, как настроено завершение.

Для firewall-cmd этот файл определяет функцию завершения, которая в настоящее время запускается

_firewall_cmd()
{
    local cur prev words cword split
    _init_completion -s || return
    firewall-cmd --state 1> /dev/null || return

Сама программа / usr / bin / firewall-cmd представляет собой питон script, который в конечном итоге требует привилегий root и запрашивает аутентификацию. Вызов firewall-cmd --state возвращает истину, если брандмауэр запущен. Таким образом, цель кода завершения состоит в том, чтобы не выполнять завершение, если брандмауэр не запущен. Однако написано, что требуются привилегии, чтобы увидеть, работает ли брандмауэр, и это вызывает нежелательные запросы.

Удаление firwall-cmd --state 1> / dev / null || Строка return из функции завершения ускоряет завершение, не запрашивая пароль и другие полезные свойства.

3
27.01.2020, 21:30

Теги

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