リムーバブルメディア
リムーバブルメディアは単に、システムから容易に取り除くことができるメディアのことです。典型的には、CD、DVD、USB ドライブ、各フォームファクタのメモリカードがこれに該当します。
非特権ユーザが未知のデバイスをマウントしたい場合、こうした種類のメディアには特別な処理が必要です。
前提条件
- カーネルが、ストレージデバイスに対応していること。
- カーネルが、デバイスが使用するファイルシステムに対応していること。
UUID とラベル
多くの場合、ストレージデバイスは /dev/sd* などのデバイスファイルによって区別されます。または、UUID (Universally Unique Identifier) (/dev/disk/by-uuid/*) またはラベル (/dev/disk/by-label/*) を使用することもできます。デバイスファイルとは違って UUID とラベルは永続的であり、非同期的な検出によって変わることはありません。UUID はファイルシステム作成時に自動的に生成されます。ラベルはファイルシステム作成時に指定するか、後で変更することができます。
すべてのストレージデバイスと、それらの UUID とラベルを表示するには、tree /dev/disk/ または lsblk (sys-apps/util-linux に含まれます) を使用してください:
user $
tree /dev/disk/
user $
lsblk -o +fstype,label,uuid,partuuid
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT FSTYPE LABEL UUID PARTUUID sda 8:0 0 111.8G 0 disk ├─sda1 8:1 0 96M 0 part ext2 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-01 ├─sda2 8:2 0 1K 0 part xxxxxxxx-02 ├─sda3 8:3 0 100M 0 part ntfs System Reserved XXXXXXXXXXXXXXXX xxxxxxxx-03 ├─sda4 8:4 0 29.6G 0 part ntfs XXXXXXXXXXXXXXXX xxxxxxxx-04 ├─sda5 8:5 0 2.8G 0 part [SWAP] swap xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-05 └─sda6 8:6 0 79.2G 0 part / ext4 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-06 sr0 11:0 1 1024M 0 rom
リムーバブルメディアをマウントする
root 特権を持たない通常ユーザとしてデバイスをマウントするためには、/etc/fstab 内にそのデバイスに関するエントリが user オプション付きで存在している必要があります。
コンピュータにリムーバブルメディアを接続して、tree /dev/disk/ または lsblk を実行してください。
user $
lsblk -o +fstype,label,uuid,partuuid
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT FSTYPE LABEL UUID PARTUUID sda 8:0 0 111.8G 0 disk ├─sda1 8:1 0 96M 0 part ext2 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-01 ├─sda2 8:2 0 1K 0 part xxxxxxxx-02 ├─sda3 8:3 0 100M 0 part ntfs System Reserved XXXXXXXXXXXXXXXX xxxxxxxx-03 ├─sda4 8:4 0 29.6G 0 part ntfs XXXXXXXXXXXXXXXX xxxxxxxx-04 ├─sda5 8:5 0 2.8G 0 part [SWAP] swap xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-05 └─sda6 8:6 0 79.2G 0 part / ext4 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-06 sdb 8:16 1 3.8G 0 disk └─sdb1 8:17 1 3.8G 0 part vfat QWER-1234 sdc 8:32 1 1.9G 0 disk └─sdc1 8:33 1 1.9G 0 part vfat QWERTZ12345 4321-REWQ qwer1234-01 sr0 11:0 1 1024M 0 rom
sdb1 と sdc1 の行は今接続した 2 つのメディアに対応し、/etc/fstab に追加する UUID QWER-1234 と 4321-REWQ を表示しています。sdc1 にはラベル QWERTZ12345 も付いていて、代わりにこれを使用することもできます。マウントポイント larry1 および larry2 を作成しましょう:
root #
mkdir /mnt/{larry1,larry2}
root #
chmod 777 /mnt/{larry1,larry2}
そして、/etc/fstab にこれらを追加してください。
# <fs> <mountpoint> <type> <opts> <dump/pass>
...
UUID=QWER-1234 /mnt/larry1 vfat noauto,rw,user 0 0
LABEL=QWERTZ12345 /mnt/larry2 vfat noauto,rw,user 0 0
これらのエントリに user オプションを付けると、通常ユーザによってマウント/アンマウントできるようになります。
user $
mount /mnt/larry1
user $
mount /mnt/larry2
何がマウントされているか確認するには、mount を引数無しで実行するか、lsblk を再度実行して、MOUNTPOINT 列に sdb1 および sdc1 が含まれている箇所を探してください:
user $
lsblk -o +fstype,label,uuid,partuuid
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT FSTYPE LABEL UUID PARTUUID sda 8:0 0 111.8G 0 disk ├─sda1 8:1 0 96M 0 part ext2 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-01 ├─sda2 8:2 0 1K 0 part xxxxxxxx-02 ├─sda3 8:3 0 100M 0 part ntfs System Reserved XXXXXXXXXXXXXXXX xxxxxxxx-03 ├─sda4 8:4 0 29.6G 0 part ntfs XXXXXXXXXXXXXXXX xxxxxxxx-04 ├─sda5 8:5 0 2.8G 0 part [SWAP] swap xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-05 └─sda6 8:6 0 79.2G 0 part / ext4 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-06 sdb 8:16 1 3.8G 0 disk └─sdb1 8:17 1 3.8G 0 part /mnt/larry1 vfat QWER-1234 sdc 8:32 1 1.9G 0 disk └─sdc1 8:33 1 1.9G 0 part /mnt/larry2 vfat QWERTZ12345 4321-REWQ qwer1234-01 sr0 11:0 1 1024M 0 rom
デバイスがマウントされたら、通常のハードディスクのようにアクセスすることができます。cp、mv、rm などのような通常の操作は問題なく行えます。
使用中のマウントポイントをアンマウントするには、マウントのときと同様にラベルまたは UUID を使用できます。どちらでもかまいません。
user $
umount /mnt/larry2
user $
umount LABEL=QWERTZ12345
user $
umount UUID=4321-REWQ
fstab にエントリが無いマウントは、root によってしか実行できません。
root #
mount UUID=QWER-1234 /mnt/larry1
user $
mount
/dev/sdb1 on /mnt/larry1 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
詳細については mount(8) man ページを参照してください。
他の方法は、/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy を編集し、action id "org.freedesktop.udisks2.filesystem-mount" 下の allow_any の auth_admin を yes に変更する方法です。リモートのユーザもローカルのユーザもディスクをマウントできるようになるので、この変更は潜在的なセキュリティリスクであると考えてください。
<action id="org.freedesktop.udisks2.filesystem-mount">
<description>Mount a filesystem</description>
<message>Authentication is required to mount the filesystem</message>
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
MTP
MTP (Media Transfer Protocol) プロトコルを利用したメディアの取り扱いについては、MTP の記事を参照してください。
関連項目
- Mount — コンピュータの現在アクセス可能なファイルシステムに、追加のファイルシステムをつなぎ合わせることを指します。
- /etc/fstab — 特にブート時において、どのようにそしてどこに主要なファイルシステムがマウントされるかを定義する設定ファイルです。
- CurlFtpFS — allows for mounting an FTP folder as a regular directory to the local directory tree.
- AutoFS — Linux カーネルの自動マウントを利用して、必要時にファイルシステムを自動でマウントするプログラム
- Udisks — a D-Bus daemon offering storage related services.
- Silk Guardian — a Linux kernel module kill switch that upon detecting changes to USB ports, wipes the RAM, securely deletes user specified files, and then shuts down the system.