unix 登录后自动运行Bash脚本

os8fio9y  于 8个月前  发布在  Unix
关注(0)|答案(4)|浏览(87)

我编写了一个脚本,将登录者的日期和用户名发送到日志文件中,以记录登录者。我想知道你如何设置这个脚本自动执行时,用户登录,而不是手动运行它在终端。注:USERNAME是当前登录的用户。
我的代码:

#!/bin/bash

printf "$(date) $HOSTNAME booted!\n" >> /home/USERNAME/boot.log
z9zf31ra

z9zf31ra1#

解决这个问题的一个更优雅的方法是从已经被写入并且用户不能更改的日志文件中读取。没有人能比Bjørne Malmanger's in his answer更好地说:
我不相信用户会给予你信息。你把它当作根;- )
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

但这并不安全,因为用户可以编辑自己的日志

hgc7kmma

hgc7kmma2#

为什么不使用last命令?
我不相信用户会给予你信息。你把它当作根;- )

dfddblmv

dfddblmv3#

把它放在~/.bash_profile中。它将在每次登录时运行。
更多信息请访问the women's rights page (i.e. man bash )

mpgws1up

mpgws1up4#

当您登录到Linux时,已经有一个将自动运行的脚本。这是位于主目录中的.bashrc文件。
您在这里输入的任何命令都将运行。您还可以从这个.bashrc文件中调用其他脚本。输入:

nano ~/.bashrc

相关问题