在 Kubuntu 上为可移动设备设置挂载选项

sko*_*okh 8 udisks kubuntu

我在多座配置中共享我的计算机,并希望每个人都安装 umask 为 0 的可移动设备(即所有人可读和可写)。好吧,理想情况下只是通过组磁盘plugdev或其他东西,但全局可以在紧要关头。

除了不,它坚持使用所有者和组作为我的用户的模式 700。


我认为可能有效但没有的事情:

政策工具包

这使人们能够安装设备。但是权限不对。似乎不可能在这里更改权限---我认为只能udisks

开发者

尝试了这个规则,但没能拿到 U 盘。但是我很确定它没有实际意义,因为这将是设备的权限而不是挂载点,并且这些权限对于磁盘的 gid 已经足够了。

KERNEL=="sd*[0-9]", ATTR{removable}=="1", ENV{ID_BUS}=="usb", MODE="0000"
Run Code Online (Sandbox Code Playgroud)

KDE 设备通知程序 + udisks

udisks为 KDE 设备通知程序执行挂载操作。但是,它没有任何设置来控制/覆盖它使用的挂载选项。设备通知程序似乎也没有任何组或 umask 设置。

但是,如果手动安装它,则一切正常。这无论如何:

udisks --mount /dev/sdf1 --mount-options umask=0
Run Code Online (Sandbox Code Playgroud)

udisks-胶水

一个非常有前途的工具,但没有骰子。udisks-glue让您配置udisks对 dbus上的事件的自定义反应!它可以自动挂载设备,您可以为此控制 umask。唉,这对设备通知程序的挂载选项没有影响,并且通常没有覆盖挂载选项的设置。

当 udisks 挂载某些东西时,它可以触发一个事件。所以我想我会用它来重新安装驱动器。但事实证明,虽然它udisks可以很好地传递大多数挂载选项,但无法处理remount.

$ udisks --mount /dev/sdf1 --mount-options umask=0,remount
Mount failed: Mount option remount is not allowed
Run Code Online (Sandbox Code Playgroud)

Aaaand 我难住了。有任何想法吗?我还在 12.10 上,也许 13.04 对此有一些魔力?

小智 2

从 2.9.0 版本开始,udisks2中现在可以修改允许的和默认的安装选项。请注意,您需要在 Ubuntu 18.04 和 20.04 上安装较新版本的 udisks2 才能访问此功能。我在这里为感兴趣的人写了一篇关于如何在 Ubuntu 18.04 上从源代码安装它的教程。可以在此处找到官方 udisks2 文档,了解如何配置默认和允许的安装选项。

vfat对于您的特定用例,您可以设置要包含的默认选项umask=0,如下/etc/udisks2/mount_options.conf所示。

[defaults]
vfat_defaults=uid=$UID,gid=$GID,shortname=mixed,utf8=1,showexec,flush,umask=0
Run Code Online (Sandbox Code Playgroud)


Fah*_*tha 0

我发现的最好的选择是udiskie。Udiskie 在 Debian 中,因此也在 Ubuntu 中。

我以多座配置共享我的计算机,并希望每个人都安装 umask 为 0 的可移动设备(即所有人都可读可写)。

这就是它默认执行的操作。

udiskie-mount devicename
Run Code Online (Sandbox Code Playgroud)

会话示例:

udiskie-mount /dev/disk/by-uuid/4E1AEA7B1AEA6007
mounted /org/freedesktop/UDisks2/block_devices/sde1 on /media/faheem/My Passport
cd /media/faheem/My\ Passport
ls -lah
total 302G
drwxrwxrwx  1 faheem faheem 8.0K Apr 19 04:18 .
drwxr-x---+ 3 root   root   4.0K Apr 19 21:08 ..
drwxrwxrwx  1 faheem faheem 4.0K Apr 19 04:19 backup-home
Run Code Online (Sandbox Code Playgroud)

如果您想使用一组特定的权限进行挂载,您可以这样做,例如:

udiskie-mount -o umask=0022 devicename
Run Code Online (Sandbox Code Playgroud)

会话示例:

cd ..
udiskie-umount /dev/disk/by-uuid/4E1AEA7B1AEA6007
unmounted /org/freedesktop/UDisks2/block_devices/sde1

cd /media/faheem/My\ Passport
ls -lah
total 302G
drwxr-xr-x  1 faheem faheem 8.0K Apr 19 04:18 .
drwxr-x---+ 3 root   root   4.0K Apr 19 21:10 ..
drwxr-xr-x  1 faheem faheem 4.0K Apr 19 04:19 backup-home
Run Code Online (Sandbox Code Playgroud)