如何使 ext4 文件在用户(非 root)挂载时可写

如何使 ext4 文件在用户(非 root)挂载时可写

我一直在尝试写入新创建的分区 我的分区块是 /dev/sda6

我无法在该分区上写入任何内容。我对应的fstab文件是这个

/dev/disk/by-id/ata-WDC_WD5000BEVT-24A0RT0_WD-WXD1EA0TV384-part7 swap                 swap       defaults              0 0
UUID=827020aa-bccf-493e-acdc-21dd8eb98639 /                    btrfs      defaults              1 1
/dev/disk/by-id/ata-WDC_WD5000BEVT-24A0RT0_WD-WXD1EA0TV384-part8 /boot                ext4       acl,user_xattr        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/sda6            /home/hawk/gentoo            ext4       users,gid=users,fmask=133,dmask=022                   1 2

如果我将其格式化回任何其他基于 Windows 的文件系统(例如 fat),我就可以读取和写入

答案1

你不能; ext[234] 不支持 uid/gid 选项或在安装时覆盖磁盘权限的任何其他方式。您必须以 root 身份正确设置磁盘上的权限。

答案2

我在 [fstab 挂载选项如何与 Linux 中每个文件定义的权限一起使用并得到了社区的详细解答!

etx4 的问题是 fstab 中的挂载选项与为每个文件存储的权限结合使用。这当然与 NTFS 相反,NTFS 没有与每个文件关联的任何 linux 权限,因此仅从 fstab 挂载选项中获取此类参数。

因此,为了使存储在 EXT4 文件系统中的文件可由某个用户写入,您需要执行以下操作:

1) 使用 rw 挂载磁盘或默认启用对文件系统的写入

2)为每个文件设置一组权限,例如用户写入它,这可以通过多种方式实现。a

)如果文件是由用户拥有写权限已授予所有者

[sudo] chown user:user file
[sudo] chmod u+w file

b) 如果文件是归集团所有用户属于并且授予该组写权限

[sudo] chown other_user:users file
[sudo] chmod g+w file


c) 如果文件被授予任何人都可以写的许可:

[sudo] chmod a+w file

答案3

我不确定您是否仍然面临这个问题,但我同意@htor关于不必要的严格fmask(和dmask?)值的观点 - 除非您知道自己在做什么。我没有真正的 ext4 分区,但以下/etc/fstab条目适用于 ext3 分区:

/dev/sda1       /virtual        ext3    noatime,users,acl,user_xattr   1 2

还有一点,查看挂载点(/home/hawk/gentoo),您似乎正在将另一个发行版(Gentoo)中使用的分区挂载到当前运行的发行版上。如果是这样,请确保您使用的gid=值与原始发行版 (Gentoo) 中用户的相应组 ID 相匹配。

相关内容