![SELinux 阻止 fstab 自动挂载](https://linux22.com/image/106042/SELinux%20%E9%98%BB%E6%AD%A2%20fstab%20%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BD.png)
很长一段时间以来,我一直在禁用 SELinux 的情况下运行 Fedora。由于似乎建议运行 SELinux 并在桌面使用的目标模式下,我决定启用它。我将其设置为强制和目标模式。重新启动系统后,进行了长时间的文件系统重新标记。完成后,由于挂载服务失败,无法完成启动,它进入紧急模式,并提示我输入管理员密码。无法挂载的文件系统是以下 fstab 条目:
/dev/disk/by-label/Acer /run/media/user/Acer/ ntfs uid=1000,gid=1000,umask=003,auto 0 0
我能够成功安装分区
# mkdir -p /run/media/user/Acer ; and mount /dev/disk/by-label/Acer /run/media/user/Acer -t ntfs -o uid=1000,gid=1000,umask=003
我将 SELinux 设置为宽容模式,重新启动系统,系统成功启动,并挂载了 NTFS 分区。
我在以下网站上读到了有关 SELinux 标签的信息Gentoo 维基。然后我检查了已挂载文件系统的 SELinux 标签:
$ ls -lZ /run/media/user/
drwxrwxr--. 1 user user system_u:object_r:fusefs_t:s0 12288 2017-01-22 10:11 Acer/
# getsebool fusefs_t
Error getting active value for fusefs_t
# grep -E 'mount|ntfs|fstab|fusefs_t' /var/log/audit/audit.log
grep 命令的输出为空并且
audit2why --all
没有显示任何错误。
$ mount | grep /run/media/user/
/dev/sda3 on /run/media/user/Acer type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
我使用/run/media的原因是,当我安装Fedora时,我使用了KDE和Dolphin,它在/run/media/目录中挂载了我的NTFS分区(标记为Acer)。我希望能够使用它而不必每次都手动安装它,因此我添加了模拟 Dolphin 使用的相同路径(或 udisksctl)的 fstab 条目。
A类似的问题
与 Samba 已修复setsebool -P samba_share_fusefs=1
。但是,我没有使用 Samba 和 getsebool 来处理 fusions_t 失败,所以我不确定是否应该使用它们中的任何一个。我是否需要向 fstab 挂载条目添加上下文,以便它忽略 NTFS 文件系统?
除了SELinux问题之外,我这里的做法是否错误?使用 /run/media/ 目录作为 fstab 条目是否有害?是否有更惯用的方法来自动挂载仅用作媒体存储的用户数据文件系统?该方法是否在这个答案更好的练习?
更新:我通过首先创建 /mnt/Acer/ 目录,然后将 fstab 条目更改为
/dev/disk/by-label/Acer /mnt/Acer/ ntfs uid=1000,gid=1000,umask=003,auto 0 0