使用udev挂载U盘。没有权限

使用udev挂载U盘。没有权限

我想在插入U盘时自动挂载它。

我相信 udev 是解决方案,所以我创建的/etc/udev/rules.d/99_extern_hdd.rules仅包含:

ACTION=="add", SUBSYSTEM=="block", ENV{ID_VENDOR_ID}=="1058", ENV{ID_MODEL_ID}=="25a2", RUN+="/etc/mount_extern.sh"

该脚本/etc/mount_extern.sh包含:

#!/bin/bash
ls -dl /media  > /tmp/output
ls -dl /media/data >> /tmp/output
echo "mount ${DEVNAME} /media/data" >> /tmp/output
mount ${DEVNAME} /media/data >> /tmp/output 2>&1

但是当我插入磁盘时,输出(/tmp/output由 创建/etc/mount_extern.sh)给了我:

drwxr-xr-x 13 root root 4096 Aug 14 10:47 /media
drwxr-xr-x 2 root root 4096 Dec 18  2017 /media/data
mount /dev/sde1 /media/data
mount: /media/data: permission denied.

我不明白为什么我有这个permission denied。文件夹的权限看起来不错不是吗?当我这样做时sudo mount /dev/sde1 /media/data,效果也很好

任何想法?

我的操作系统是 Linux archlinux 5.8.10-arch1-1 #1 SMP PREEMPT Thu, 17 Sep 2020 18:01:06 +0000 x86_64 GNU/Linux

答案1

您无法逃避mountUDev 规则。来自 UDev 联机帮助页:

请注意,由于 systemd-udevd.service 上强制执行默认沙箱,因此在 udev 规则内不允许运行访问网络或挂载/卸载文件系统的程序。

您可以使用systemd-mount或其他工具,请参阅https://wiki.archlinux.org/index.php/Udev#Mounting_drives_in_rules

相关内容