登录时自动运行 Bash 脚本

2024-02-05

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

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(使用前将#替换为@)

登录时自动运行 Bash 脚本 的相关文章

随机推荐

  • 存储库布局是什么意思

  • jQuery 在 WebKit (chrome) 和 Firefox 中为相同对象返回不同的高度

    我对此感到困惑 jQuery height 在 Firefox 和 Chrome 中以不同的值返回 测量屏幕上的像素表明 在两者中 Chrome 似乎报告了正确的值 而 Firefox 每次都会偏离 2 或 3 个像素 还有其他人遇到过这个
  • 导入错误:没有名为“fabric.contrib”的模块

    Fabric 2 0 1 运行调用 fabfile py 的项目时出错 我使用的是 Python 3 5 1 有谁知道为什么会发生这种情况 Traceback most recent call last File bootstrap pex
  • 在 C# 中将字符串转换为 JSON

    我正在尝试使用简单的 JSON http wiki unity3d com index php SimpleJSON将此字符串转换为 JSON objects id 1 title Book position x 0 position y
  • 扭曲的逻辑:一个文件中的全局变量引用外部变量,但也被该外部变量引用

    文件A cpp include
  • 将道具从孙子传递给父母

    我有以下 React js 应用程序结构
  • PS7.1 - 如何将管道链与自定义函数一起使用?

    根据文档 PS 7 引入了管道链运算符 例如 and https learn microsoft com en us powershell module microsoft powershell core about about pipel
  • 如何绕过Python中的Mechanize“AmbiguityError”

    我正在尝试通过填写 Web 表单并请求 POST 将图像上传到 ImageBam 我对 urllib2 httplib 多部分的东西不太了解 我正在尝试使用 MECHANIZE 模块 但我认为它不应该太复杂 因为它只是一个网络表单 我会填写
  • C2440 无法在 C++ WinApi 中将 LRESULT 转换为 WNDPROC

    我正在尝试使用 WinApi 编写这个 win32 程序 但我陷入了困境 因为我正在遵循的教程似乎有问题 主窗口 h class MainWindow public MainWindow HINSTANCE MainWindow void
  • 屏蔽掉c中不需要的位

    给定小数71744474在二进制中它是0100010001101011101111011010我试图从这个十进制中提取的是从低位开始的每七位 这七个位中的每一个都代表一个可打印的 ASCII 字符 该字符只能有 7 位 我总共拉出了四个角色
  • 如何为 PHPUnit 测试创建内存数据库?

    我是 PHPUnit 以及一般单元测试 的新手 我想要开发一个测试套件 开发人员可以在本地运行 但也可以在我们的集成系统 Codeship 中运行 我知道可以使用内存数据库 但似乎依赖于我们没有使用的迁移 似乎不能很好地处理视图 存储过程
  • 使用 Mono Touch 在循环中使用 CGImage.ScreenImage 时出现内存问题

    我正在尝试创建一个应用程序来使用 Monotouch 和 Zxing 的 C 端口读取 QR 码 但遇到了内存问题 当应用程序处理捕获的屏幕帧时 应用程序会收到内存警告 然后关闭 我删除了对 Zxing 的调用 以追踪内存问题的根源 并且只
  • 如何去除视频的绿色背景,使其透明?

    我有一个video https youtu be XfHJ57XIb4具有绿色背景 我想删除这个绿色部分 色度键 https wikipedia org wiki Chroma key 使其透明 然后将视频显示在网站背景上 我只能找到使用图
  • 文本颜色在 Material-UI 主题中不起作用

    使用 Material UI 创建颜色主题时 我将对比度文本设置为白色 fff 它适用于具有原色的按钮 但不适用于次要颜色 尝试了如下所述的覆盖 Material UI 无法更改主题中的按钮文本颜色 https stackoverflow
  • TOOLCHAIN_HOST_TASK 与 TOOLCHAIN_TARGET_TASK

    我很抱歉问了一个天真的问题 我无法理解这些 Yocto 变量之间的区别 手册说 TOOLCHAIN HOST TASK 列出构成主机部分的包 SDK 即在SDKMACHINE上运行的部分 当你使用bitbake时 c populate sd
  • 一个循环遍历多个 Lua 表

    是否可以使用同一个循环遍历多个 Lua 表 为了循环索引表 我可以这样做 local t1 a b c local t2 d e f local num t1 t2 for i 1 num do local j local val if i
  • 使用 jQuery 将 HTML 插入 iFrame Body 标记

    我正在使用托管 CMS 它在另一个 iFrame 中呈现一个 iFrame 这些 iFrame 是从同一域加载的 但由于这是托管 CMS 我无法直接访问这些 iFrame 是否可以使用 jQuery 将 HTML 内容插入到bodyiFra
  • 跳到一行并阅读它

    我必须处理大文件 许多 GB 并且需要快速查找以根据请求检索特定行 这个想法是维护一个映射 some key gt byte location 其中字节位置表示该行在文件中的起始位置 编辑 问题稍微改变了 首先我使用 FileInputSt
  • 在Delphi中加密/解密文本文件?

    您好 我想知道文本文件加密和解密的最佳加密技术 我的场景 我的软件有两种类型的用户 管理员和操作员 我们的要求是当管理员使用GUI输入数据并保存时加密文本文件 该加密文件将作为操作员的输入 他们只需选择它并使用该文件 当操作员选择这些文件时
  • 登录时自动运行 Bash 脚本

    我编写了一个脚本 它将登录者的日期和用户名发送到日志文件中 以记录登录者的记录 我想知道如何设置此脚本在用户登录时自动执行 而不是在用户登录时自动执行在终端中手动运行它 注意 用户名是当前登录的用户 my code bin bash pri