web-dev-qa-db-ja.com

通常のユーザーとしてのUDF.isoイメージのマウントとアンマウント

しばらく前にfuseisoについて知りましたが、UDFイメージをマウントする必要があり、UDFイメージをマウントしようとして失敗したため、fuseisoはサポートしていないようです。任意のイメージの通常のユーザーとしてこれを実行できる必要があります。また、できれば特定のユーザーディレクトリ内のマウントポイントを使用してマウントを解除できる必要があります(問題ではない場合、たとえば/home/user/mounted/*)。したがって、mountを直接使用することはできません。これを達成する方法はありますか?

私はUbuntuを使用していて、これを調査しているときにpmountについて知りましたが、1).isoブロックデバイスではなく/devファイルをマウントしようとしているため、ニーズに合わないようです2)ユーザーの場所にマウントすることはできません(したがって、Fuse fsの場合はfusermount -uを使用するなどして、ユーザーとしてマウントを解除できます)。

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

anyオプションとは何ですか?最後の手段として私が想像する最悪で最も落胆したケースでは、これを達成するためのカスタムsetuidスクリプトを書くことができるでしょうか?私はそれを危険にさらす必要がないことを望んでいます。

1

Udisks2パッケージのudisksctl loop-setup -f /full/path/to/isoを使用します。

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.

/ media/$ USER /にisoをマウントします。

そうでない場合は、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)

ISOが/ dev/loop1にマップされている場合は、udisksctl unmount -b /dev/loop1でアンマウントします。

GUIなしでも動作するはずです。

5
user192526