这很奇怪,我尝试使用下载 html 文件wget
wget --user=xxx --password=yyy http://192.168.1.1/
当我以我自己的身份执行它时,它可以工作,当我以 root 身份执行它时,它会失败并显示消息:
Connecting to 192.168.1.1:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
去哪里寻找差异?这是什么原因呢?看起来外部方可以知道我正在使用什么登录:-)。
url 是我的路由器地址,我需要定期获取其配置。
更新1: 作为记录:
sudo -u regular_user wget --user=xxx --password=yyy http://192.168.1.1/
从 root 帐户开始工作。
更新2:我没有$HOME/.wgetrc
为任何用户设置,WGETRC
也没有为任何用户设置。密码和登录名不包含除 7 位 ASCII 之外的任何内容。
更新3:wget.rc
也没有。
更新4:wget 的输出(给 Álex Sáez 的回答):
Connecting to 192.168.1.1:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 401 Unauthorized
Server: micro_httpd
Cache-Control: no-cache
Date: Sat, 01 Jan 2000 13:32:51 GMT
WWW-Authenticate: Basic realm="U.S. Robotics ADSL Gateway"
Content-Type: text/html
Connection: close
Connecting to 192.168.1.1:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 Ok
Server: micro_httpd
Cache-Control: no-cache
Date: Sat, 01 Jan 2000 13:32:51 GMT
Content-Type: text/html
Connection: close
Length: unspecified [text/html]
Saving to: ‘index.html’
答案1
尝试使用--ask-password
和--server-response
参数。喜欢:
wget --server-response --user username --ask-password http://192.168.1.1
而且,我知道这与 root 无关,但请尝试引用密码。只是因为也许你有类似 hello#123 的内容。您可以使用反斜杠或“hello#123”键入它。
答案2
没有凭据,它就可以工作。您是超级用户还是普通用户并不重要。但是,当您输入 root 凭据时,很可能您输入的密码是错误的,或者您只是无权访问该页面