lynx代理授权

lynx代理授权

我的系统上的许多脚本都依赖这些脚本,lynx而这些脚本又无法通过我的代理。更具体地说,lynx成功获取除用户 ID 和密码字段之外的全局代理设置,建议-pauth改为在命令行上使用:

lynx -pauth=proxyuserid:proxypass

我不能轻易做到这一点,因为 lynx 是间接调用的。但是我应该如何做,才能在全局范围内对所有 lynx 调用应用这些设置?配置文件——找不到有关代理授权的任何内容。一个同名的 bash shell 包装器lynx调用实际的lynxwith -pauth- 不知何故我无法让它工作。

更新。我有完整描述代理的环境变量,例如, http_proxy=http://userid:pass@proxyserver:port Lynx 可以从中正确读取代理服务器和端口,但由于某种原因没有读取用户/密码字段(例如与 wget 不同)。

因此,我现在使用 lynx 包装脚本,如下所示:

envproxy=${http_proxy%@*}
/usr/bin/lynx -pauth=${envproxy:7} "$@"

答案1

lynx如果脚本/程序调用时未指定路径,则用包装脚本替换将起作用lynx,因此系统将在变量中列出的目录中搜索它PATH

您必须找出lynx位置,例如通过键入type lynx
我想可能是/usr/bin/lynx

PATH调用的脚本/程序的变量必须在(例如)的位置之前lynx具有不同的目录(例如)。如果不是这种情况,您可能需要延长。/usr/local/binlynx/usr/binPATH

例子:

假设你的PATH设置为

PATH=/usr/bin:/bin:/sbin:/usr/bin/X11

你可以用它来扩展它

PATH="/usr/local/bin:$PATH"

PATH在为脚本/程序设置的启动脚本之一中。具体如何执行此操作取决于这些脚本/程序的调用方式。

/usr/local/bin/lynx然后你可以创建一个像这样的shell 脚本:

#! /bin/sh

# Here you could do what is needed to get the user name and password for the
# proxy authentication and use these instead of hard coded values.

/usr/bin/lynx -pauth=proxyuserid:proxypass "$@"

当脚本/程序想要执行时,lynx foo bar它会先找到您的脚本,/usr/local/bin/lynx然后再找到/usr/bin/lynx.

然后脚本将调用/usr/bin/lynx -pauth=proxyuserid:proxypass "foo" "bar".

当然,您可以使用不同的位置来代替/usr/local/bin

如果脚本/程序执行 lynx 时指定了类似/usr/bin/lynx foo bar.在这种情况下,您可以重命名/usr/bin/lynx为 例如并创建一个以相同方式调用的/usr/bin/lynx.real脚本。/usr/bin/lynx/usr/bin/lynx.real

相关内容