如何在 Linux 中安装 USB 驱动器时自动设置写入权限?

Jon*_*nas 20 linux usb mount permissions usb-flash-drive

当我在 linux (CentOs4) 上安装外部 USB 驱动器时,权限默认设置为只读。由于计算机上有多个用户需要使用外置驱动器,我希望每个人都拥有rw整个驱动器的权限。我还希望他们能够在计算机意外关闭时安装驱动器。他们可以sudo mount用来挂载驱动器,但这只会给他们读权限,我显然不想允许sudo chmod.

是否有我可以更改的默认设置,以便每个新的外部 USB 磁盘自动获得rw权限?

tem*_*oto 21

要启用每个人的 rw 访问,关键是 mount 命令的 umask=0 选项。

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere
Run Code Online (Sandbox Code Playgroud)

umask=0 就足够了,uid 和 gid 只是为了清楚起见,因此您不会看到更多的“root”所有者。


@Tom 的回答(编写 /etc/fstab 条目)将允许您跳过sudo,如果您在那里编写 umask=0 作为附加选项,您将获得两全其美:

在 /etc/fstab 中有这个:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0
Run Code Online (Sandbox Code Playgroud)

允许你运行

mount /dev/something
Run Code Online (Sandbox Code Playgroud)

并且每个人都可以访问所有文件。


这是技术说明,如果您想了解详细信息:

如上所述man mount,'umask=0' 将确保没有其他规则适用于文件访问模式。对于 FAT 文件系统(在 USB 磁盘上使用最广泛),没有存储访问模式。但是您当前的进程设置了一些 umask 值,如果您只umask在终端中运行,您就可以看到它。mount使用它作为默认值并从挂载磁盘上的所有文件中删除 umask 值的访问模式。最广泛使用的 umask 值是(八进制)022 - 无组和其他写入,以及 027 - 无组写入,无任何其他访问。

  • FWIW,umask 选项是仅 VFAT 选项,即只要 USB 存储器使用 VFAT 文件系统(我的情况并非如此),该解决方案就会有所帮助。 (2认同)
  • 谢谢你。但是我必须对其进行更改才能使其正常工作:`sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhere` 它只能在不设置 gid 参数的情况下工作。 (2认同)