主页: http://ignorantguru.github.io/udevil/
下载: https://github.com/IgnorantGuru/udevil/tree/pkg
官方论坛(udevil 和 SpaceFM): https://sourceforge.net/p/spacefm/discussion/general/
目录
描述 软件包 安装程序 构建 构建下一个版本 创建 DEB 包 安装后设置 内核轮询 网络和文件 NTFS-3G 设置 SUID systemd 服务 启用内核轮询 卸载 翻译 许可
描述
无需密码(设置 suid)挂载和卸载可移动设备和网络,显示设备信息,监视设备变化。模拟 mount 和 udisks 的命令行用法以及 udisks v1 的输出。包括 devmon 自动挂载守护进程。
运行 'udevil --help' 查看使用方法。查看 /etc/udevil/udevil.conf 进行配置。 http://ignorantguru.github.com/udevil/udevil--help.html http://ignorantguru.github.com/udevil/udevil.conf.txt
软件包
查找或添加适用于您的发行版的软件包、论坛主题和其他信息: https://github.com/IgnorantGuru/spacefm/wiki/Distros
对于其他发行版:
参见下面的安装程序部分
注意:安装后请查看下文的安装后设置部分。
安装程序
提供了自解压安装程序(udevil-x.x.x-installer.sh): https://github.com/IgnorantGuru/udevil/tree/pkg (要保存文件,点击文件名然后点击 '查看原始')
安装程序需要下面构建部分列出的构建依赖项。如果缺少任何依赖项,检查错误,安装缺失的软件包,然后重试。
安装程序必须在终端中运行。它会自动构建和安装。运行方式如下:
bash udevil-x.x.x-installer.sh
或者查看选项:
bash udevil-x.x.x-installer.sh --help
要重新安装或升级,只需再次运行最新安装程序。
注意:安装后请查看下文的安装后设置部分。
构建
-
安装所需的构建依赖项(以下是 Debian 包名 - 您的发行版的包名可能会有所不同,但应该类似):
libglib2.0-0 libglib2.0-dev libudev0 (>=143) libudev-dev autotools-dev build-essential fakeroot intltool pkg-config 网络支持也推荐安装:cifs-utils curlftpfs sshfs 如果使用 devmon,还推荐安装:eject spacefm|zenity 运行 configure 时会报告任何缺失项,如下所示。-
使用以下命令下载 udevil 压缩包并构建:
下载 & 解压
mkdir /tmp/udevil-build && cd /tmp/udevil-build wget -O udevil.tar.gz https://github.com/IgnorantGuru/udevil/tarball/master tar xzf udevil.tar.gz cd IgnorantGuru-udevil-*
构建 & 安装
./configure --prefix=/usr make sudo make install
删除临时文件
cd / && rm -rf /tmp/udevil-build
备注:
* 如果 configure 报告缺失依赖项,安装它们并在继续执行 make 前重新运行 configure。 * 默认情况下,systemd 配置文件用于 devmon 安装到: /etc/conf.d/devmon /usr/lib/systemd/system/devmon@.service 要跳过这些文件的安装,使用 configure 选项 --disable-systemd。无论如何,systemd 不是必需的。 * 安装后请查看下文的安装后设置部分。 -
构建下一个版本
udevil 的 git 'next' 分支是正在进行中的工作,最终将成为下一个发布版。要从这个分支构建,安装上面构建部分列出的构建依赖项,然后:
# 下载 & 解压
mkdir /tmp/udevil-next && cd /tmp/udevil-next
wget -O udevil-next.tar.gz https://github.com/IgnorantGuru/udevil/tarball/next
tar xzf udevil-next.tar.gz
cd IgnorantGuru-udevil-*
# 构建 & 安装
./configure --prefix=/usr
make
sudo make install
# 删除临时文件
cd / && rm -rf /tmp/udevil-next
创建 DEB 包
在基于 Debian 的发行版上构建 udevil 的 deb 文件:
1) 安装构建依赖项(参见上面的构建部分)加上 'debhelper'。
2) 使用以下命令下载并解压 udevil 压缩包(确保使用不含空格的临时构建路径):
mkdir /tmp/udevil-build && cd /tmp/udevil-build # 路径中不要包含空格
# 注意:你可以将 "master" 改为 "next" 如果你想要 next 分支:
wget -O udevil.tar.gz https://github.com/IgnorantGuru/udevil/tarball/master
tar xzf udevil.tar.gz
cd IgnorantGuru-udevil-*
3) 将 distros/debian 目录移动到源目录中:
mv distros/debian .
4) 构建软件包:(软件包文件将出现在父目录中)
dpkg-buildpackage -b -uc
cd .. && rm -rf IgnorantGuru-udevil-* udevil.tar.gz
5) 安装你构建的软件包:
dpkg -i udevil*.deb
安装后设置
内核轮询 --------------
您可能需要为设备媒体由 udevil 检测而启用内核轮询。参见下面的启用内核轮询部分。
网络和文件
------------------
默认情况下,/etc/udevil/udevil.conf 设置为仅允许挂载本地文件系统ISO文件,不允许挂载网络。要允许挂载网络和文件,在 /etc/udevil/udevil.conf 中设置:
allowed_types = $KNOWN_FILESYSTEMS, file, cifs, nfs, curlftpfs, sshfs, davfs
您可能还需要安装 curlftpfs 或 ftpfs (ftp://),cifs 或 smbfs (smb://),sshfs (ssh://),和 davfs2 (http://)。
NTFS-3G
-------
如果本地 ntfs 文件系统没有被以可写方式挂载,您可能需要配置系统以使用 ntfs-3g 挂载 ntfs(在某些发行版中这已经完成了)。例如:
sudo ln -s /sbin/mount.ntfs-3g /sbin/mount.ntfs
# 或者如果 mount.ntfs-3g 位于 /usr/bin:
sudo ln -s /usr/bin/mount.ntfs-3g /usr/bin/mount.ntfs
设置 SUID
--------
安装 udevil 后,/usr/bin/udevil 应该已经设置了 suid 位。如果没有,这样设置:
sudo chown root:root /usr/bin/udevil
sudo chmod u+s,go-s,ugo+x /usr/bin/udevil
ls -l /usr/bin/udevil
-rwsr-xr-x 1 root root 226625 May 22 08:13 /usr/bin/udevil
或者,仅允许 'plugdev' 组执行 udevil:
sudo chown root:plugdev /usr/bin/udevil
sudo chmod u+s,go-s,o-x /usr/bin/udevil
ls -l /usr/bin/udevil
-rwsr-xr-- 1 root plugdev 226625 May 22 08:13 /usr/bin/udevil
或者,如果您不希望用于挂载,可以取消 suid:
sudo chown root:root /usr/bin/udevil
sudo chmod ugo-s,ugo+x /usr/bin/udevil
ls -l /usr/bin/udevil
-rwxr-xr-x 1 root root 226625 May 22 08:13 /usr/bin/udevil
您也可以通过编辑 /etc/udevil/udevil.conf 限制用户和组。
systemd 服务
---------------
要作为 systemd 服务启动 devmon:
systemctl start devmon@<用户>
启用内核轮询
您可能需要为设备媒体由 udevil 检测而启用内核轮询。例如,如果您插入 CD,udevil 的监视命令没有报告设备变化,或者 udevil 没有在设备上看到文件系统,这是内核轮询未启用的症状。
内核轮询是 Linux 内核和 udev 的新功能,因此某些发行版默认没有启用。要使用内核轮询,您的 Linux 内核可能需要是 2.6.38 或更高版本,udev 可能需要是版本 173 或更高版本。
要确定是否启用了内核轮询:
cat /sys/module/block/parameters/events_dfl_poll_msecs
cat /sys/block/sr0/events_poll_msecs
如果这两个命令都返回 0 或 -1,内核轮询可能已禁用。
要永久启用内核轮询(重启后仍然有效),将以下命令添加到您的 /etc/rc.local 文件中(在 'exit' 行之前的任何位置):
echo 2000 > /sys/module/block/parameters/events_dfl_poll_msecs
任何在 2000 到 5000(毫秒)之间的数字都应该合理 - 较高的 5000 意味着每 5 秒轮询一次,这会减少开销但稍微慢一些。
或者将此选项传递给内核引导命令行在 grub 中:
block.events_dfl_poll_msecs=2000
或者添加一个 udev 规则来启用可移动设备的内核轮询:
echo 'ACTION=="add", ATTR{removable}=="1", \
ATTR{events_poll_msecs}=="-1", ATTR{events_poll_msecs}="2000"' \
> /etc/udev/rules.d/61-removable-storage-polling.rules
重启后上述更改才会生效,或者...
要立即临时启用内核轮询,为 block 模块启用通用轮询:
sudo bash -c 'echo 2000 > /sys/module/block/parameters/events_dfl_poll_msecs'
或者仅为单个设备启用轮询(以下示例为 /dev/sr0):
sudo bash -c 'echo 2000 > /sys/block/sr0/events_poll_msecs'
这种更改应该是立即生效的 - 媒体会被检测到。但是,上述更改在重启后将丢失。
参考文献: http://www.mail-archive.com/lfs-dev@linuxfromscratch.org/msg15714.html http://blogs.gentoo.org/mgorny/2011/06/20/uam-can-now-mount-cds-and-dvds/ https://bugs.archlinux.org/task/25609 http://unix.stackexchange.com/questions/38582/
卸载
如果您通过软件包安装,使用您的包管理器移除 udevil。否则,解压 tar 包并进入包含 configure 的目录:
# 如果需要,首先运行 configure 带上您的原始选项:
./configure
sudo make uninstall
# 注意:/etc/udevil/ 不会被自动移除
翻译
请将翻译请求发送到项目的 GitHub 页面或论坛。
若需协助翻译 udevil,请访问: https://github.com/IgnorantGuru/spacefm/wiki/Translate
在 Transifex 上: https://www.transifex.com/projects/p/udevil/
只需注册一个免费的 Transifex 账户。有关操作指南,请访问: http://help.transifex.com/intro/translating.html#translating
许可协议
udevil - 版权所有(C)2015 GPL3+
本程序为自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它;许可协议的版本可以是 3,或者(根据您的选择)任何后续版本。
请自行承担使用风险。本程序以希望对您有所帮助为前提进行分发,但 **不提供任何保证**,即使是商业性和针对特定目的的隐含保证。更多细节请参考 GNU 通用公共许可证。
您应该随本程序一起收到了一份 GNU 通用公共许可证副本;如果没有收到,可以写信给自由软件基金会,地址是:美国波士顿市富兰克林大街 51 号,五楼,邮编 02110-1301。
请参阅Copying文件。