不清楚 fstab auto 和用户选项之间的交互

不清楚 fstab auto 和用户选项之间的交互

auto我对和usermount 选项之间的交互感到困惑fstab

在错误地设置auto而不是设置之后noauto,我注意到插入设备时会发生挂载,但用户随后无法卸载该设备(“用户”是在没有 root 权限的情况下运行的可执行文件)。这是/etc/fstab条目:

/dev/mmcblk1p1 /home/user/importexport auto rw,user,auto,exec,uid=1000,gid=100,umask=0022,nobootwait 0 2

当我替换auto为时noauto,用户可以显式挂载和卸载设备。

这是在嵌入式系统上,我没有运行时可见性,这意味着没有 shell 访问权限来交互式地探索问题。我所能做的就是将调试信息写入可以在下次启动时查看的文件。我的内核是3.10.0。

那么为什么用户无法卸载已使用该选项自动安装的设备呢user


注:在选项“user”适用于挂载,不适用于卸载,有人询问 的权限/etc/mtab。我的是-rw-r--r--根用户的,但/etc/mtab不包含该问题中提到的任何用户信息,所以我认为这可能不相关。

答案1

我相信 auto(fstab 中的选项)始终以 root 身份执行,而 user 选项仅告诉安装程序它允许接受来自简单用户的请求。发生的情况如下:您插入驱动器,系统识别它,自动挂载它(以 root 身份),如果用户不在 root 组中,则用户将无法卸载它。

您可以从 fstab 中删除自动选项(或更好地提供其他选项 - noauto),保留用户选项并按用户编写脚本(因为它由用户执行)以在每次插入驱动器时安装它。

编辑:
似乎无论自动安装程序使用用户帐户,它都与您的帐户不同。

编辑#2:
您可以通过执行命令找出谁安装了设备

ls /mnt/ -l

编辑#3:

或者

sudo cat /etc/passwd | cut -f -3 -d ':' | sed -re 's/(.*):(.*):(.*)/\3 \2 \1/g' | while read p1 p2 p3 ; do printf "%05i $p2 $p3\n" "$p1" ; done | sort -r | while read p1 p2 p3 ; do echo $p3 ; done | while read p ; do sudo -u $p umount /dev/ice 2>/dev/null && echo $p >> /tmp/busted ; done

用您感兴趣的设备替换 /dev/ice
确保您的 sudoers 文件已正确设置,
您将在 /tmp/busted 中找到您想要的可疑用户

相关内容