“last”选项仅显示当前用户的登录信息

“last”选项仅显示当前用户的登录信息

我知道我可以使用last $USER,但是这在拥有许多用户的计算机上无法正常或安全地工作 - 任何用户都不应该知道其他用户的 IP 或他们何时登录。是否有针对此问题的已知解决方案,或者我应该注意

答案1

在 FreeBSD 上,您应该注意的文件是:

/var/log/utx.log
/var/log/utx.lastlogin

utmputmpx9.0 中被替换

一种常见但粗暴的方法是将文件链接到/dev/null。所有写入该文件的数据都将无效。

ln -sf /dev/null /var/log/utx.log

或者您可以删除命令对数据库的访问权限lastlog

chmod o-r /var/log/utx.lastlog

上面的优点是您作为 root 仍然可以访问数据库 - 但不能访问用户。那将是我的首选。

但如果你想让用户拥有部分访问权限,那就会变得很困难。您可以创建一个包装脚本来替换last和 ,lastlogin它仅显示您想要的信息。但数据仍然被写入一个世界可读的文件中,以便用户可以查看该文件。

最后,您还可以选择要启用日志记录的 ttys交流电。然后,您可以选择不记录所有pts通常是您的 ssh 会话的日志。

但是,如果您担心安全性,您可能希望继续记录日志 - 但只需删除对数据库文件的世界可读文件访问权限即可。

答案2

如果您的用户通过 登录ssh,正如我所假设的那样,那么实现此目的的一种方法可能是sshd自己从源代码构建,--disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpxconfigure.我没有尝试过这个,只是一个建议。

相关内容