Как я управляю resolv.conf с Марионеткой и NetworkManager?

Нет никакого способа предотвратить ** от того, чтобы переходить по символьным ссылкам в ударе, ни имеет запрос для позволения встреченный любой ответ.

Если Вы чувствуете себя подобно написанию кода, Вы могли бы исправить удар для представления новой опции, которая выключает обход символьной ссылки с **. При представлении патча к специалисту по обслуживанию удара это увеличило бы шанс той функции, присутствующей один день. Тем не менее, по крайней мере тем временем, Вы закончили бы с необходимостью развернуть и поддержать локальную версию критической системной программы, которая является, вероятно, плохой идеей.

Нет никакого способа изменить поведение ** с псевдонимом. Если Вы используете промежуточный массив для хранения результата расширения, вот то, как можно использовать find вместо этого:

find . … -print0 | {
  a=()
  while read -r -d "" line; do 
    a+=("$line")
  done
  frobnicate "${a[@]}"
}

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

Если нормально исключать файлы, имя которых содержит символ новой строки, это легче:

set -f; IFS=
a=($(find . … ! -name $'*\n*' -print))
set +f; unset IFS
frobnicate "${a[@]}"

Вы могли попытаться запустить свои существующие скрипты в ksh режиме эмуляции zsh. Zsh не реализует все опции удара — почти вся функциональность удара существует в zsh, но иногда с несовместимым синтаксисом. Вы могли также попытаться выполнить сценарии wih ksh93: версии с тех пор 93o + поддержка ** как в zsh, и большинство (но снова, не все) функций удара от ksh, таким образом, Ваши сценарии могут быть легкими к порту к ksh93. Переключение на ksh обладает дополнительным преимуществом, что это имеет тенденцию быть быстрее или, чем удар или, чем zsh.

3
07.11.2014, 07:21
1 ответ

Когда вы используете NetworkManager, он обычно управляет /etc/resolv.conf , поэтому вы не хотите управлять этим непосредственно с помощью кукол. Вместо этого вы хотите управлять файлами конфигурации, которые зависят от битовой распределения.

Но формат конфигурации восходящего по умолчанию хранится в / etc / ettewmanager / system-connections и в этом каталоге вы можете отбросить новые файлы конфигурации E.g. с марионеткой. Другим способом заключается в том, чтобы сделать это разговаривать с NetworkManager через API (прямо через D-Bus или через LIBNM или даже NMCLI ).

Есть еще опция настройки DNS = none в главном разделе /etc/networkmanager/networkmanager.conf и обработка resolv.conf Отказ

2
27.01.2020, 21:27

Теги

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