Mount

以普通使用者身份安裝和解除安裝 UDF .iso 映像

  • January 11, 2019

我不久前發現了,但我需要掛載 UDF 映像,並且在我嘗試使用它掛載 UDF 映像失敗後fuseiso,它似乎不支持它。fuseiso我需要能夠以普通使用者的身份對任意圖像執行此操作,並且我還必須能夠解除安裝它們,最好是使用特定使用者目錄範圍內的掛載點(假設這不是問題,例如/home/user/mounted/*),所以直接使用mount是不行的。有沒有辦法做到這一點?

我在 Ubuntu 上,在調查這個問題時我發現了,pmount但它似乎不符合我的需求,因為 1)我正在嘗試掛載.iso文件而不是/dev塊設備 2)我無法掛載它在使用者位置(所以我可以作為使用者解除安裝它,例如使用fusermount -u它是否是保險絲 fs)。

POLICY
  The mount will succeed if all of the following conditions are met:

  · device is a block device in /dev/

  · device is not in /etc/fstab (if it is, pmount executes  mount device as the  calling  user  to  handle  this
    transparently). See below for more details.

  · device is not already mounted according to /etc/mtab and /proc/mounts

  · if the mount point already exists, there is no device already mounted at it and the directory is empty

  · device  is  removable  (USB,  FireWire, or MMC device, or /sys/block/drive/removable is 1) or whitelisted in
    /etc/pmount.allow.

  · device is not locked

我有什麼選擇?在最糟糕和最令人沮喪的情況下,我想作為最後的手段,我可​​以編寫一個自定義的 setuid 腳本來完成這個嗎?我希望我不必冒險。

udisksctl loop-setup -f /full/path/to/iso從 udisks2 包中使用它。

udisksctl loop-setup -f /media/myname/dvd/avatar/buch-1/AVATAR_BK1_VOL1_EUR.iso
   Mapped file /media/myname/dvd/avatar/buch-1/AVATAR_BK1_VOL1_EUR.iso as /dev/loop1.

它將 iso 掛載在 /media/$USER/ 中。

如果沒有,您還需要輸入udisksctl mount -b /dev/loop1

$ mount | grep udf
/media/myname/dvd/avatar/buch-1/AVATAR_BK1_VOL1_EUR.iso on /media/myname/AVATAR_BK1_VOL1_EUR type udf (ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,uhelper=udisks2)

udisksctl unmount -b /dev/loop1如果 iso 映射到 /dev/loop1,則解除安裝。

也應該在沒有 gui 的情況下工作。

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