如果某些用户 3 次都无法访问某些命令sudo
,则应在访问日志\错误中向 root 用户报告此情况。
root 是否可以在日志中的文本中看到这些尝试(如尝试过的密码)?
答案1
不,默认情况下不会记录密码。这会造成安全问题,因为其他管理员可能会读取日志,如果密码输入有误,系统就会冒充用户。
答案2
登录尝试成功和失败均已登录
/var/log/auth.log
成功尝试的示例:
Oct 23 21:24:01 schijfwereld sudo: rinzwind : TTY=pts/0 ; PWD=/home/rinzwind ; USER=root ; COMMAND=/bin/bash
Oct 23 21:24:01 schijfwereld sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
并且不成功:
Oct 23 21:25:33 schijfwereld sudo: pam_unix(sudo:auth): authentication failure; logname= uid=1000 euid=0 tty=/dev/pts/1 ruser=rinzwind rhost= user=rinzwind
Oct 23 21:26:02 schijfwereld sudo: rinzwind : 3 incorrect password attempts ; TTY=pts/1 ; PWD=/home/rinzwind ; USER=root ; COMMAND=/bin/bash
它记录失败的尝试以及总共 3 次错误输入的密码。
尝试输入的密码sudo
永远不会显示或存储。
答案3
通常的做法是不记录登录尝试中使用的密码,即使该密码无效。这只是因为该密码可能对同一系统上的另一个用户有效(例如,用户输入了错误的密码)用户名,而不是密码),或者可能是实际密码的简单更改(用户漏掉了一个字母左右)。
这两种情况都会在系统中留下明文密码,容易泄露某些信息。(该密码也可能是输入系统以外的其他系统的有效密码,但这对“他们”来说才是真正的问题,而不是“我们”。)
与此有些相关的是,用户用密码代替用户名的情况(例如,他们通常使用自动输入用户名的系统,但现在没有,但仍然首先输入密码)。在这种情况下,日志中会有明文密码。这不是最佳选择,但查看通常失败的登录尝试的用户名很有用,并且没有简单的解决方案来存储它们,而不是将输入的密码作为用户名。
话虽如此,没有什么可以阻止系统管理员让系统记录密码。添加日志记录可能可以通过添加一次调用syslog()
并重新编译 PAM 模块来完成。(PAM 是 Ubuntusudo
使用的,但当然同样适用于 Web 应用程序和其他一切。)
因此,通常管理员无法看到系统中输入的密码,但如果您在不信任的系统上输入密码,严格来说,您应该认为密码已丢失并进行更改。
答案4
更一般地来说,非常unix 中很少有程序会将实际密码记录到 syslog 或其他地方——几乎没有理由这样做,而且也有充分的理由不是到。
由于密码的哈希处理方式,系统无法区分错误密码和拼写错误 - 如果您的密码是 %$zDF+02G,而您输入的是 %$ZDF+02G,系统会像您输入“rubberbabybuggybumpers”一样失败,但记录失败的密码会给出有价值的信息被读取日志的恶意第三方获取。
我发现一个案例,一个程序做过能够记录密码(以及一个好主意的用例)是在 RADIUS 服务器中,您可以在其中紧急切换为提供比您可能需要的更多信息的调试模式,然后明确添加表示“是的,包括密码',因为您的客户端无法连接,您需要排除所有可能的原因......