从 USB 复制的文件的文件权限与我在 Ubuntu 中创建的文件的文件权限不匹配

从 USB 复制的文件的文件权限与我在 Ubuntu 中创建的文件的文件权限不匹配

当我在 Ubuntu 中创建文件时,它只为所有者创建了读/写权限。但如果我从 fat32 USB 驱动器复制文件,文件权限会为所有者、组和其他人提供读/执行权限。

如何使从 USB 驱动器复制的文件采用与 Ubuntu 中的其他文件相同的文件权限?

答案1

类似 Unix 的所有权和权限与 fat 或 ntfs 文件系统不兼容。如果您需要在复制到另一个驱动器时保留权限,最好使用 ext* 类型的文件系统对其进行格式化。如果是闪存驱动器,最好使用 ext2 以减少对驱动器的写入。缺点是它将使驱动器在 Windows 中无法读取(如果您使用它进行安装,则无法启动)。另一种方法是使用文件制作一个存档(.tar.gz)并复制该存档,这样您就可以保留权限。

答案2

要设置来自非 Unix 文件系统(如 FAT32)的复制文件的权限,请使用

rsync --chmod=CHMOD source destination

其中 CHMOD 是您希望复制的文件具有的权限。替换修改模式例如,0644将授予所有者读/写权限,并授予所有其他用户只读权限。有关更多复制选项,请参阅rsync 手册页

答案3

我能给出的最佳答案是使用基于 UNIX/Linux 的存档工具,如 tar(1) 或 cpio(1)。这将保留文件的日期和权限,但我们并不真正关心存档文件本身。tar cf /media/stickdrive/foobar.tar path/to/my/file

相关内容