设置用户安装的文件系统

设置用户安装的文件系统
    $ mount /mnt/
Unprivileged user can not mount NTFS block devices using the external FUSE
library. Either mount the volume as root, or rebuild NTFS-3G with integrated
FUSE support and make it setuid root. Please see more information at
http://tuxera.com/community/ntfs-3g-faq/#unprivileged

而且当然

systemctl --user start mnt.mount
Failed to start win10.mount: Unit win10.mount failed to load: No such file or directory.

如果没有“--user”,则需要 root 访问权限。但是,我还没有设置任何类型的 sudo,但是每当我插入 ntfs 驱动器时,KDE 设备通知程序都允许我在没有任何密码的情况下安装它!但是,如果 /etc/fstab 中提到任何驱动器,即使使用“用户”选项,它也确实需要 root 访问权限!即,我可以从命令行以普通用户身份挂载我的其他 linux 文件系统,但既不能通过 systemctl,也不能通过 KDE Device Notifier,而无需提供任何密码!最后,我创建了文件 /etc/systemd/user/*.mount ,它允许使用“systemctl --user”来安装它们,而无需任何 root 访问权限,但 KDE 和 mount 命令都不会注意到此权限。

我想将这些混乱整理成某种顺序,了解哪些设备可以由用户安装,哪些设备不能由用户安装,并允许通过两种脚本方法(KDE 和 systemd)安装。我发现,mount需要fstab,systemd需要相关生成器中的更改才能真正与fstab同步。但是 KDE 呢? KDE 如何设法在命令行上挂载实际需要 root 访问权限的任何内容,而不询问密码或使用任何类型的 sudo?我需要更改什么源文件(我在gentoo上)才能授予对/etc/fstab中标记为“用户”的内容的访问权限?这样的源文件位于哪个 kde 包中?以及如何挂钩 KDE 用于通过 root 特权命令机会获取新设备通知的方法,以便根据用户请求安装外部驱动器?

答案1

KDE 与udisks守护进程交互(udisks2现在)。有一个命令行工具,现在称为udisksctl.该守护进程本身不运行挂钩脚本。

可以编写一个监听 udisks 事件的守护进程。 udiskie就是这样一个用 Python 编写的守护进程。作为一个例子,它可能很有用。

相关内容