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


18

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

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

Answers:


17

要使所有人都能访问rw,关键是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-无组写入,没有任何其他访问。


如果我将其添加umask=0 0 0为fstab中的条目,则会收到“错误选项”的错误消息。umask-entry 是否需要最后输入?该managed=0 0 0条目当前最后执行什么操作?
乔纳斯(Jonas)2010年

1
FWIW,umask选项是仅VFAT的选项,即,只要USB存储器使用VFAT文件系统,该解决方案就会有所帮助(这并非我的情况)。
Tomislav Nakic-Alfirevic'3

2
谢谢。但是我必须对其进行更改以使其起作用:sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhere它仅在不设置gid参数的情况下起作用。
Nippey 2012年

2

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

UUID = 4ACC734ECC733375 / media / Linux ext3 errors = remount-ro,默认值,用户,noatime,nodiratime 0 0

此处的关键是“用户”条目,该条目允许用户安装和卸载驱动器。

编辑:这适用于特定的驱动器-我不知道是否可以为所有具有一个条目的驱动器启用它。


如果用户安装了驱动器,那么其他所有用户也会获得rw许可吗?
乔纳斯(Jonas)2010年

1

输入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)

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

现在输入

sudo umount /dev/sdf1

这将卸载驱动器

现在可以正确地重新安装。

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
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.