如何在插入 USB 存储设备时收到电子邮件通知?

kar*_*k87 29 notification email usb-storage

我们公司正在运行 600 多个 Ubuntu 系统。这是一个数据中心,所以我们有一定的政策。我们已经在所有 Ubuntu 系统中禁用了存储设备的使用。但是,我们想配置电子邮件警报。如果有人插入存储设备,我们应该收到一封电子邮件警报,主题如下,

电子邮件警报:

STORAGE DEVICE FOUND on IP: 172.29.35.18

笔记:

  • 至于 Windows 系统,我们在 DC 中应用了某些策略。所以Windows系统没有问题。
  • 我们还需要接收 Ubuntu 系统的警报。任何完成上述任务的方法都会很棒。

更新:

  • 我想澄清的几件事,如果用户断开网线并且用户是否使用 USB 进行数据传输?我知道我不会收到任何通知,但稍后如果他们连接网络是否有可能收到那些待处理的通知??
  • 有些人使用 USB 为他们的手机充电,是否也可以收到电子邮件通知??

ish*_*ish 24

这样做的方法是使用适用于任何制造商的所有 USB 存储设备的udev规则。对于电子邮件部分,请注意 Ubuntu 桌面不包含任何命令行电子邮件客户端,因此除非您希望安装一个,否则通知脚本应通过原始 SMTP 命令直接与您的本地邮件服务器通信。


hyt*_*omo 18

您可以使用 Cuttlefish ( https://apps.ubuntu.com/cat/applications/cuttlefish/ )!

Cuttlefish 是一个可以在事件发生时执行操作的程序。例如,您可以在插入 USB 时运行命令: 在此处输入图片说明

如何使用墨鱼:

  1. 从左上角创建一个新的 Reflex: 在此处输入图片说明
  2. 为其指定您的偏好名称,启用Activated by stimulus,然后单击None以选择刺激: 在此处输入图片说明
  3. 单击左侧Hardware和右侧USB device plugged in。然后单击确定。 在此处输入图片说明
  4. 单击反应选项卡,然后单击左下角的加号: 在此处输入图片说明
  5. 前往应用程序-> 启动应用程序(高级模式)。然后单击确定。 在此处输入图片说明
  6. 现在,在右侧,您可以看到您可以选择一个可执行文件以使用您希望的任何参数运行,因此,您必须让 Cuttlefish 在系统托盘上运行,并且每次插入 USB 设备时它都会运行您的命令: 在此处输入图片说明

我假设您知道一个可以用来发送电子邮件的命令。如果没有,请将其作为评论发布,以便将其包含在我的答案中。

  • 在其中一个系统上配置 cuttlefish 后,您可以轻松克隆 `~/.cuttlefish`。此外,如果您在墨鱼登录设置时勾选自动启动(您可以在首选项中找到它),您可以通过克隆`~/.config/autostart/cuttlefish.desktop` 在每台机器上设置自动启动。 (7认同)

bla*_*899 5

根据此答案,将此代码添加到/etc/udev/rules.d/90-local.rules

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh"
Run Code Online (Sandbox Code Playgroud)

并在usb.sh文件中添加此代码

#!/bin/bash
ifconfig | grep ip >>/tmp/usb.log

echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” example@hotmail.com
Run Code Online (Sandbox Code Playgroud)

来源


现在我要尝试自动化它,所以你可以在 600 个 Ubuntu 系统中添加这个规则/脚本。

    sudo echo " ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh" ">>/etc/udev/rules.d/90-local.rules

 #then the `usb.sh`

    sudo echo "     #!/bin/bash
        ifconfig | grep ip >>/tmp/usb.log

        echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” example@hotmail.com " >>/usr/local/bin/usb.sh
Run Code Online (Sandbox Code Playgroud)

此脚本未经测试,自动化过程将得到改进。
一旦我设置了一些测试PC。

  • 不,这仅适用于 Sandisk 制造的设备。此外,默认情况下,Ubuntu 桌面上未安装 `mutt`,并且 `ifconfig | grep ip` 给出一个空输出。 (5认同)