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

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

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

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

答案1

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

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

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


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

在 /etc/fstab 中有以下内容:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

让你只需运行

mount /dev/something

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


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

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

答案2

在 /etc/fstab 中添加一个条目。这是我几个小时前为我的 Seagate USB 驱动器添加的条目:

UUID=4ACC734ECC733375 /media/Linux ext3 错误=remount-ro、defaults、users、noatime、nodiratime 0 0

这里的关键是允许用户安装和卸载驱动器的“用户”条目。

编辑:这适用于特定的驱动器 - 我不知道是否可以启用它全部驱动器只有一个入口。

答案3

输入mount。这将给出当前所在的位置。这是我的输出。

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

最后是我的 USB 驱动器由 Linux Mint 自动安装。

现在输入

sudo umount /dev/sdf1

这将卸载驱动器

现在可正确重新安装。

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0

相关内容