与另一台计算机一起使用ext4格式的USB驱动器时,不同的UID / GID


11

ext4在USB记忆棒或存储卡上使用文件系统的问题是,当将文件系统安装到另一个系统中时,磁盘的UID / GID可能不存在。

可以通过安装选项来解决吗?


Answers:


11

我假设您希望找到Linux 命令知道的其他文件系统所支持的uid=Ngid=N选项的等效项mount。抱歉,但是ext4没有该选项。

这些其他文件系统都为了这样一个选项,权限文件可能没有有用的POSIX权限的文件系统。您正在寻求取消权限,或者至少重新分配权限,从安全角度来看,这是个坏主意,这无疑是为什么这些选项不存在的原因。

当在可移动媒体上使用诸如ext4之类的文件系统时,就是说您在乎诸如POSIX权限之类的东西。这意味着您必须采取与NFS相同的步骤来同步用户和组ID。

如果您实际上并不关心权限,则可能有一种更适合您情况的文件系统。

在下面的评论之后,我尝试将UDF用作此类文件系统的候选人,但是,,,它不起作用:

  • 如果您在一个Linux机器上创建一个UDF文件系统,向其中添加文件,更改其权限,然后将其安装在另一个Linux机器上,即使您提供,它也将遵守在其中找到的许可权uid=N,gid=N。与NFS一样,您必须在此处同步UID和GID。

  • Mac OS X的行为符合预期:它相信它拥有在Linux机器上创建的UDF文件系统上的所有内容。但是,将文件添加到磁盘,它将设置文件的UID和GID,然后Linux机器将遵循该文件。

  • 如果您随后尝试将该文件系统挂载在FreeBSD盒上,它会大声喊叫invalid argument。我认为这是因为内核开发人员没有意识到UDF可能会出现在非光学介质上,仅仅是因为我无法在线找到任何成功报告。也许我错过了一个魔咒。

  • 据报道,可以在Windows上使用UDF硬盘驱动器,但是它的创建方式非常挑剔。如果您需要此功能,最好在Windows中进行格式化。在命令行中:

    format /fs:udf x:

    不要使用/q:创建的文件系统不太可能挂载在其他操作系统上。

    请注意,UDF仅在Vista和更高版本上可读写。XP将安装在Vista上创建的UDF硬盘驱动器,但无法对其进行写入。

某种形式的FAT可能是此处的最佳选择。如果由于FAT32 4 GB文件大小限制而避免这样做,则不妨考虑一下exFAT。有一个免费的FUSE版本

如果您使用的最新的Linux发行版包括对NTFS的可靠读/写支持,则NTFS也可能会起作用。


我在udf上修复了这些选项,并将它们添加到ext [234]已有一段时间了。可以使用udf做到这一点似乎很愚蠢,而macs可以使用其hfsplus做到这一点,但是linux仍然不能使用其首选的fs。
psusi 2012年

3
实际上,UDF确实具有posix权限。如果您未指定uid / gid选项,则它将像ext [234]或任何其他posix fs一样存储所有权和权限。如果指定了ID,则默认值是在写入光盘时将其转换为-1,而从光盘读取时将-1转换为该ID。这使普通用户可以轻松地在其ID不同的系统之间移动文件。几年前,我添加了“ ignore”作为始终应用该ID的值,而不仅仅是在磁盘上为-1时,无论所有者是否与默认ID匹配,“ forget”总是向磁盘写入-1。
psusi 2012年

我怀疑他们允许UDF使用的原因是UDF通常与CD-RW和DVD一起使用。这使其成为一个“移动”文件系统,因此应用缺少的所有权权限将是常见的需求。此外,很少会看到包含用户和组权限的UDF文件系统。我仍然认为向ext4添加这样的选项可能会带来安全隐患。但是,如果这对您来说无关紧要,那么在这种情况下,UDF可能是ext4的一个很好的选择。
沃伦·杨

因此,UDF是在不同操作系统(而不是vfat)之间使用的设备的绝佳解决方案。
马克2012年

1
可移动媒体的唯一安全性是物理安全性或加密。不管您使用什么文件,如果您给我一张磁盘,我总是可以将其插入并更改权限。能够自动覆盖它只是为了方便。
psusi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.