答案1
您在 WSL 下看不到的原因有两个/var/log/auth.log
:
首先,WSL 默认不运行任何服务,包括
rsyslog
。没有系统日志服务,那么...就没有 syslog!我假设你已经搞清楚了这一点,因为你做不过,有一个/var/log/auth.log
。对于正在阅读本文的其他用户,您需要执行一个sudo service rsyslog start
来启动日志服务。其次,正如 ThomasWard 在评论和讨论中指出的那样,WSL 并不是传统意义上的“登录”。具体来说,在 Ubuntu 下,PAM(可插入身份验证模块)用于对用户进行身份验证。而 PAM 就是将身份验证信息记录到 syslog 中,通常会导致您期望的输出
/var/log/auth.log
。但你会注意到,启动 WSL 时无需输入密码。这是因为 WSL 的
/init
进程(其 PID 为 1,是所有其他进程的父进程)将你的 shell 启动为默认用户。密码在 WSL 中没什么用,因为它是你的视窗用户最终决定了您对系统的访问权限。换句话说,即使root
在 WSL 中也永远不会超出 Windows 用户的权限。由于您已经登录到 Windows,WSL 不需要 WSL 用户密码的“额外保护”。
然而,正如你在现有/var/log/auth.log
的是您可以执行哪些操作来触发 PAM,从而触发写入日志。最常见的两个是su
和sudo
。
另请注意,/etc/securetty
您在日志中看到的消息是由于pam_securetty模块尝试查找其配置。由于 WSL 下未配置(或不需要),因此 Ubuntu 默认不提供该文件。