问题描述
我们公司中正在运行600多个Ubuntu系统。这是一个数据中心,因此我们有某些政策。我们已在所有Ubuntu系统中禁用了存储设备的使用。但是,我们想配置电子邮件警报。如果有人插入存储设备,我们将收到一封电子邮件警报,主题如下,
Email Alert:
STORAGE DEVICE FOUND on IP: 172.29.35.18
注意:
-
对于Windows系统,我们在DC中应用了某些策略。因此,Windows系统没有问题。
-
我们还需要接收有关Ubuntu系统的警报。任何完成上述任务的方法都会很棒。
更新:
-
我想说明的几件事,如果用户断开了网络电缆的连接,以及用户是否使用USB进行数据传输?我知道我不会得到任何提示,但是以后如果他们连接网络,是否有可能收到那些待处理的通知?
-
有些人使用USB为手机充电,是否还可能为此获得电子邮件通知?
最佳回答
这样做的方法是使用udev规则,该规则将适用于任何制造商的所有USB存储设备。对于电子邮件部分,请注意,Ubuntu Desktop不包含任何命令行电子邮件客户端,因此,除非您希望安装该客户端,否则通知脚本应通过原始SMTP命令直接与本地邮件服务器通信。
次佳回答
您可以使用墨鱼(https://apps.ubuntu.com/cat/applications/cuttlefish/)!
墨鱼是一个可以在事件发生时执行操作的程序。例如,您可以在插入USB时运行命令:
如何与墨鱼一起工作:
-
从左上角进行新的反射:
-
给它一个您喜欢的名称,启用
Activated by stimulus
,然后单击None
以便选择一个刺激: -
单击左侧的
Hardware
和右侧的USB device plugged in
。然后单击确定。 -
单击反应选项卡,然后单击左下方的加号:
-
转到应用程序->启动应用程序(高级模式)。然后单击确定。
-
现在,在右侧,您可以选择一个可执行文件以使用任何希望的参数运行,因此,您必须让Cuttlefish在系统托盘上运行,并且每次插入USB设备时它都会运行您的命令:
我假设您知道可以用来发送电子邮件的命令。如果没有,请以评论的形式发表,以将其包含在我的回答中。
第三种回答
按照此answer的代码,将此代码添加到/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"
并在usb.sh
文件中添加此代码
#!/bin/bash
ifconfig | grep ip >>/tmp/usb.log
echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” example@hotmail.com
现在,我将尝试使其自动化,以便您可以在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
该脚本未经测试,并且自动化过程将得到改善。一旦我安装了一些测试PC。