我知道我可以使用last $USER
,但是这在拥有许多用户的计算机上无法正常或安全地工作 - 任何用户都不应该知道其他用户的 IP 或他们何时登录。是否有针对此问题的已知解决方案,或者我应该注意
答案1
在 FreeBSD 上,您应该注意的文件是:
/var/log/utx.log
/var/log/utx.lastlogin
utmp
utmpx
9.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-wtmpx
向configure
.我没有尝试过这个,只是一个建议。