Debian:umount /media/usb0:“不允许操作”

Debian:umount /media/usb0:“不允许操作”

我最近从 Ubuntu 14.10 迁移到 Debian 测试。在 Ubuntu 下,我有一个 shell 脚本用于将我的主文件夹备份到 U 盘。脚本的最后一行卸载 USB 记忆棒。适配Debian的文件系统,应该是:

umount /media/usb0

(或 umount/media/usb链接到/media/usb0)。但是当我执行脚本时,最后一行抛出umount: /media/usb0: umount failed: Operation not permitted.显然,sudo它可以工作,但我想知道为什么我需要在这里使用 sudo (在 Ubuntu 上不需要)。有什么想法可以绕过这个问题,那么如何在不root的情况下卸载U盘呢? (脚本的其余部分运行完美)。

更新

这是我的 /etc/fstab:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/sklar--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=a90bee04-e08a-4a86-8465-762aca5719a4 /boot           ext2    defaults        0       2
/dev/mapper/sklar--vg-swap_1 none            swap    sw              0       0
/dev/sdb1       /media/usb0     auto    rw,user,noauto  0       0

答案1

默认情况下,mount仅允许 root 用户使用,或者,如果在 中指定/etc/fstab,则由用户使用。

/etc/fstab现在,如果您的 USB 驱动器是在没有指定(或手动指定)的情况下自动安装的root,则不会使用user=youruser选项安装,因此youruser将无法安装umount

/etc/fstab如果您的 USB 驱动器在with选项中指定user,则任何用户都可以使用mount它,并且同一用户(和 root)也可以使用umount它。

/etc/fstab您需要的是在,中指定您的 USB 驱动器user=youruser。这样的话,无论是否root安装youruser了USB驱动器,youruser都可以umount

答案2

以下是/etc/fstab外部 USB 大容量存储设备的典型线路。

UUID="4E1AEA7B1AEA6007" /mnt/passport  auto    rw,user,noauto  0       0

这个特定的硬盘恰好适用于我的 Passport USB 硬盘。请注意user第四个字段中的关键字。该字段(与文件系统关联的挂载选项)告诉系统允许用户挂载和卸载设备。还有其他选项,但使用user非常常见和典型。是UUID从 获得的blkid,是存储设备的标识符。

有关更多详细信息,请参阅 参考资料man mount,特别是“非超级用户安装”部分。这说:

非超级用户挂载。

通常,只有超级用户才能挂载文件系统。但是,当fstab一行中包含用户选项时,任何人都可以挂载相应的系统。

因此,给定一行

 /dev/cdrom  /cd  iso9660  ro,user,noauto,unhide

任何用户都可以iso9660使用以下命令挂载 CDROM 上的文件系统

 mount /dev/cdrom

或者

 mount /cd

有关更多详细信息,请参阅fstab(5)。只有安装了文件系统的用户才能再次卸载它。如果任何用户都应该能够卸载,则在 fstab 行中使用 users 而不是 user。所有者选项与用户选项类似,但限制是用户必须是特殊文件的所有者。例如,/dev/fd如果登录脚本使控制台用户成为该设备的所有者,这可能很有用。组选项类似,但限制用户必须是特殊文件组的成员。

相关内容