我编写了一个脚本,它将登录者的日期和用户名发送到日志文件中,以记录登录者的记录。我想知道如何设置此脚本在用户登录时自动执行,而不是在用户登录时自动执行在终端中手动运行它。注意:用户名是当前登录的用户。
my code:
#!/bin/bash
printf "$(date) $HOSTNAME booted!\n" >> /home/USERNAME/boot.log
解决此问题的一种更优雅的方法是从已写入且用户无法更改的日志文件中读取。没有人能比这更好地说Bjørne Malmanger 的回答 https://stackoverflow.com/a/9674407/187273:
我不相信用户会向您提供信息。作为root你
拿去 ;-)
一个很好的方法是last
命令,这很棒,因为它整齐地显示所有登录:图形、控制台和 SSH。
last
一种不太优雅但仍然安全的方法是在 /var/log/auth.log 上执行 grep。在我的 Gnome/Ubuntu 系统上,我可以使用它来跟踪图形登录:
grep "session opened for user USERNAME"
需要为每种登录类型找到适合您机器的模式:图形、控制台和 SSH。这很麻烦,但如果您需要比之前更早的信息,您可能需要这样做last
达到。
直接回答你的问题:
您可以像这样修改脚本来获取用户名
#!bin/bash
printf "$(date) $HOSTNAME booted!\n" >> /home/$(whoami)/boot.log
并将此行添加到 /etc/profile
. /path/to/script.sh
但这并不安全,因为用户将能够编辑自己的日志
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)