Wie verwendet man Escape-Sequenzen in Konfigurationsdateien in Ubuntu?

623
Tarun Maganti

Ich hatte ein Problem mit dem Tunneling von einem HTTP-Proxy in Ubuntu.

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

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

Diese Fragen beschreiben das Problem und die Lösung. Dazu muss ich eine Datei 'apt.conf' erstellen und eine Zeile im folgenden Format eingeben.

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

Das Problem ist, dass das Passwort ein '@' enthält.

Dies ist der Fehler, den ich bekomme. Error

Die Frage ist, wie füge ich ein Passwort in die Konfigurationsdateien ein.

Ich habe versucht, "\ @" und "/ @" zu verwenden. Beide haben Fehler ergeben, die nicht exakt gleich sind, aber in Bezug auf "Temporärer Fehler bei der Auflösung der ID und des Kennworts" ähnlich sind.

Das habe ich geschrieben

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

Ich habe versucht,

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
Natürlich können Sie auch das Passwort ändern :) HBruijn vor 8 Jahren 0
Ich würde wenn ich könnte. Ich habe jedoch keine Privilegien, um das Passwort zu ändern. Es ist eine Vollmacht, die mir meine Universität zur Verfügung gestellt hat. Sie würden das Passwort nicht nur für mich ändern. Tarun Maganti vor 8 Jahren 0
Danke für die Bearbeitung. Sie müssen den gesamten String ** entziehen, nicht nur das Zeichen @. `Acquire :: http :: proxy" 'tarun: usa @ 9356 @ http: //192.17.2.4: 808 /' ";` - Verwenden Sie einfache Anführungszeichen in Anführungszeichen user657451 vor 8 Jahren 0

2 Antworten auf die Frage

0
Tarun Maganti

Mir ist aufgefallen, dass der Fehler gesagt hat "Could not resolve <address>", was bedeutet, dass <address>es sich um eine URL handelt. Die Suche nach URL führt zu URL-Kodierungen von Zeichen.

Um sie @in meine Adresse aufzunehmen, kann ich sie mit codieren %40. Daher wird die gesamte Zeichenfolge. http://tarun:usa%409356@192.17.2.4:808Wenn% 40 analysiert wird, wird sie nicht als @ gezählt. Was perfekt funktioniert hat.

Hier finden Sie einen Link zu weiteren URL-Kodierungen

-1
user657451

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

Danke für die Bearbeitung. Sie müssen die gesamte Zeichenfolge, nicht nur den @ -Zeichenzeichen, mit Escapezeichen versehen. Acquire::http::proxy "'tarun:usa@9356@http://192.17.2.4:808/'";- Verwenden Sie einfache Anführungszeichen in Anführungszeichen

In diesem Beitrag heißt es, dass ich zur Verwendung einiger Sonderzeichen Escape-Sequenzen verwenden muss. Es ist nicht möglich, die Zeichenfolge nicht zuerst @ zu ignorieren und in das Kennwort aufzunehmen. Tarun Maganti vor 8 Jahren 0
Wie ich im Beitrag gesagt habe, habe ich "\ @" und "/ @" verwendet. Keiner von ihnen hat gearbeitet. Tarun Maganti vor 8 Jahren 0
Per Link: "Die meisten Zeichen ... werden wörtlich genommen, indem sie in Anführungszeichen (" ") gesetzt werden." Ihr OP sagt "\ @" und "/ @" ", aber dieser Kommentar sagt" "\ @" und "/ @" "- das sind zwei verschiedene Dinge. Linux-Syntax verwendet Backslashes. user657451 vor 8 Jahren 0
Posten Sie die gesamte Zeichenfolge, die Sie analysieren möchten (natürlich ohne das Kennwort). user657451 vor 8 Jahren 0
In der obigen Zeichenfolge. Ich möchte, dass das erste @ im Passwort enthalten ist. Tarun Maganti vor 8 Jahren 0
Die Grenze macht Sinn. Nur-Link-Antworten sind eine sehr schlechte Form und werden dringend empfohlen. SE-Sites sind als Archive gedacht, und Links können mit der Zeit schlecht werden. Sie sollten den relevanten Inhalt in Ihre Antwort aufnehmen und trotzdem den Link zur korrekten Zuordnung posten. Ron Maupin vor 8 Jahren 0
Der Apt scheint zu glauben, dass die Proxy-Adresse "9356 @ http: //" ist und nicht aufgelöst werden konnte. Tarun Maganti vor 8 Jahren 0
@ Ron Maupin: OK, das macht Sinn. Einige Dinge können jedoch mit weniger als 30 Zeichen beantwortet werden. user657451 vor 8 Jahren 0
Nachdem Sie die bearbeitete Lösung ausprobiert haben. Die Fehler bleiben bestehen und sagen, dass "usa @ 9356 @ http" nicht behoben werden kann. Tarun Maganti vor 8 Jahren 0
Hm ... Es sollte nicht den Doppelpunkt parsen, aber das scheint es zu brechen. Noch ein paar Dinge, die Sie ausprobieren können: Erstchen Sie den Doppelpunkt (\ :), wenn dies nicht funktioniert, entfernen Sie ihn. Versuchen Sie dann doppelte Anführungszeichen. ('' ... '') und wenn dies fehlschlägt, versuchen Sie, doppelte Anführungszeichen in einfache Anführungszeichen ('\ "... \"') zu setzen. user657451 vor 8 Jahren 0