Debian

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

  • April 3, 2015

我最近從 Ubuntu 14.10 轉到了 Debian 測試。在 Ubuntu 下,我有一個用於將我的主文件夾備份到 U 盤的 shell 腳本。腳本的最後一行解除安裝 U 盤。使其適應 Debian 的文件系統,它應該是:

umount /media/usb0

(或 umount/media/usb連結到/media/usb0)。但是當我執行腳本時,最後一行會拋出umount: /media/usb0: umount failed: Operation not permitted. 顯然,sudo它可以工作,但我想知道為什麼我需要在這裡成為 sudo (在 Ubuntu 上不是必需的)。任何想法如何規避這一點,那麼如何在沒有root權限的情況下解除安裝USB記憶棒?(腳本的其餘部分完美執行)。

更新

這是我的 /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

預設情況下,mount僅允許 root 使用,或者,如果在 中指定/etc/fstab,則由使用者使用。

現在,如果您的 USB 驅動器在未指定/etc/fstab(或手動root)的情況下自動掛載,則不會使用user=youruser選項掛載,因此youruser將無法掛載umount

如果您的 USB 驅動器在選項中指定/etc/fstab,則user任何使用者都可以使用mount它,並且同一個使用者(和 root)也可以使用umount它。

您需要的是在 中指定您的 USB 驅動器/etc/fstab,使用user=youruser. 那樣的話,不管是裝上root還是youruser掛載U盤,youruser都可以umount

以下是/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。owner 選項類似於 user 選項,但限制使用者必須是特殊文件的所有者。這可能很有用,例如,/dev/fd如果登錄腳本使控制台使用者成為該設備的所有者。組選項類似,但使用者必須是特殊文件組的成員。

引用自:https://unix.stackexchange.com/questions/194206