ere*_*eOn 10 linux ubuntu automounting
我有一个包含我的 keepass2 密码数据库的 USB 密钥,当它插入我的计算机时,我想执行一些操作,即:
我猜是简单的任务,但我找不到如何做到这一点。
我使用的是 Ubuntu 12.10,它自动将设备安装为“媒体 USB 密钥”并尝试打开其上的图像(即使没有图像)。
什么是最好的方法来做到这一点并禁用 ubuntu 自动安装(因此它不冲突)?
当出现新设备时,会通知udev。它通常/dev根据内置规则创建一个设备文件¹。您可以覆盖这些规则以更改设备文件位置或运行任意程序。这是一个这样的 udev 规则示例:
KERNEL=="sd*", ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="123456789", NAME="keepass/s%n", RUN+="/usr/local/sbin/keepass-drive-inserted /dev/%k%n"
Run Code Online (Sandbox Code Playgroud)
该NAME=指令更改了设备文件的位置,我包含它是为了说明目的,但它可能对您的用例没有用。的ATTRS规则识别设备; udevinfo -a -n /dev/sdz当驱动器可用时运行/dev/sdz以查看它具有哪些属性。请注意,您只能使用ATTRS来自udevinfo输入的单个部分的规则(此外,您可以使用ATTR来自初始部分的规则)。有关更多背景信息,请参阅了解 `udevadm info -a -n /dev/sdb` 的输出。此规则进入一个名为/etc/udev/rules.d/local-storage-keypass.rules.
将要运行的命令放在指令中给出的脚本中RUN。就像是:
#!/bin/sh
set -e
if [ -d /media/keypass-drive ]; then
[ "$(df -P /media/keypass-drive | awk 'NR==2 {print $1}')" = "$(df -P /media | awk 'NR==2 {print $1}')" ]
else
mkdir /media/keypass-drive
fi
mount "$1" /media/keypass-drive
su ereon -c 'keypass2' &
Run Code Online (Sandbox Code Playgroud)
如果您在从 udev 触发的脚本运行 GUI 程序时遇到问题,请参阅我能否以 root 身份在其他用户的桌面上启动图形程序?
¹不适/dev用于 udevtmpfs上的现代系统。
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |