Как использовать escape-последовательности в конфигурационных файлах в Ubuntu?

585
Tarun Maganti

У меня была проблема туннелирования apt с http-прокси в Ubuntu.

https://askubuntu.com/questions/23666/apt-get-does-not-work-with-proxy

https://askubuntu.com/questions/158557/setting-proxy-from-terminal

Эти вопросы описывают проблему и решение. Для этого необходимо создать файл 'apt.conf' и ввести строку в следующем формате.

http://[username]:[password]@[proxy-webaddress]:[port] 

Проблема в том, что в пароле есть «@».

Это ошибка, которую я получаю. ошибка

Вопрос в том, как включить пароль в конфигурационные файлы.

Я попытался использовать "\ @" и "/ @", оба выдавали ошибки, не совсем одинаковые, но похожие в терминах "Временная ошибка при разрешении идентификатора и пароля"

Это то что я написал

Acquire::http::proxy "http://tarun:usa@9356@192.17.2.4:808/"; 

Я пытался,

Acquire::http::proxy "http://tarun:usa\'@\'9356@192.17.2.4:808/";  Acquire::http::proxy "http://tarun:usa\@9356@192.17.2.4:808/";  Acquire::http::proxy "http://tarun:usa/@9356@192.17.2.4:808/";  Acquire::http::proxy "'http://tarun:usa/@9356@192.17.2.4:808/'";  Acquire::http::proxy "\'http://tarun:usa/@9356@192.17.2.4:808/\'";  Acquire::http::proxy "`http://tarun:usa/@9356@192.17.2.4:808/`"; 
1
Конечно, вы также можете рассмотреть вопрос о смене пароля :) HBruijn 8 лет назад 0
Я бы сделал, если б мог. Но у меня нет привилегий для смены пароля. Это прокси, предоставленный мне моим университетом. Они не будут менять пароль только для меня. Tarun Maganti 8 лет назад 0
Спасибо за редактирование. вам нужно экранировать ** всю строку **, а не только @ charcter. `Acquire :: http :: proxy" 'tarun: usa @ 9356 @ http: //192.17.2.4: 808 /' ";` - использовать одинарные кавычки внутри двойных кавычек user657451 8 лет назад 0

2 ответа на вопрос

0
Tarun Maganti

Я заметил, что ошибка говорит "Could not resolve <address>", что подразумевает, что <address>это URL. Поиск по URL привел меня к URL кодировкам символов.

Чтобы включить @в мой адрес, я могу закодировать его с помощью %40. Следовательно, вся строка становится. http://tarun:usa%409356@192.17.2.4:808Когда проанализированный% 40 не считается как @. Который работал отлично.

Вот ссылка на дополнительные URL-кодировки

-1
user657451

http://www.shellscript.sh/escape.html

Спасибо за редактирование. вам нужно экранировать всю строку, а не только символ @ charcter. Acquire::http::proxy "'tarun:usa@9356@http://192.17.2.4:808/'";- используйте одинарные кавычки внутри двойных кавычек

В этом посте говорится, что для использования некоторых специальных символов я должен использовать escape-последовательности. Он не имеет, как не позволить строке игнорировать первый @ и включить его в пароль. Tarun Maganti 8 лет назад 0
Как я уже говорил в посте, я использовал "\ @" и "/ @". Никто из них не работал. Tarun Maganti 8 лет назад 0
По ссылке: «Большинство символов ... воспринимаются буквально, заключая их в двойные кавычки (« »)». Ваш ОП говорит "'\ @" и "/ @" ", но этот комментарий говорит" "\ @" и "/ @" "- это две разные вещи. Синтаксис Linux использует обратную косую черту. user657451 8 лет назад 0
Опубликуйте всю строку, которую вы пытаетесь проанализировать (очевидно, без пароля) user657451 8 лет назад 0
В приведенной выше строке. Я хочу, чтобы первый @ был включен в пароль. Tarun Maganti 8 лет назад 0
Ограничение имеет смысл. Ответы только на ссылки являются очень плохой формой, и _сильно_ обескуражены. Сайты SE подразумеваются как архивы, и со временем ссылки могут испортиться. Предполагается, что вы добавите соответствующий контент в свой ответ, и все равно разместите ссылку для правильного указания авторства. Ron Maupin 8 лет назад 0
Апт, кажется, думает, что адрес прокси-сервера "9356 @ http: //" и сказал, что не может решить его. Tarun Maganti 8 лет назад 0
@ Рон Мопин: Хорошо, это имеет смысл. Тем не менее, на некоторые вещи можно ответить в <30 символов. user657451 8 лет назад 0
После опробования отредактированного решения. Ошибки продолжают появляться, говоря, что «usa @ 9356 @ http» не может быть решена. Tarun Maganti 8 лет назад 0
Хм ... Это не должно быть разбор толстой кишки, но это то, что, кажется, ломает его. Еще несколько вещей, которые можно попробовать: во-первых, избежать двоеточия (\ :), если это не сработает, удалите его, затем попробуйте двойные одинарные кавычки. ('' ... ''), и если это не удается, попробуйте избежать двойных кавычек внутри одинарных кавычек ('\ "... \"') user657451 8 лет назад 0

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