CD / DVDドライブルール:「/ media / DVD」への挿入時にドライブをマウント
自動マウントを復元する場合は、実行方法をある程度制御してください。
- メディアの挿入時にマウントポイントを自動作成します
- 特定の権限でマウントポイントにメディアを自動マウントします
- メディアの削除時にマウントポイントを自動削除
アクション:CD / DVDトレイにメディアがあり、引き込まれている
このアクションに対応するようシステムに指示する必要があります。マウントスクリプト(カスタムスクリプト)を実行させることができます。これを行うには、フォルダーに新しいルールを作成する必要がありlib/udev/rules.d
ます。これらのコマンドは、rootとして実行する必要があります(sudo
次のコマンドのプレフィックスを使用して、rootとして実行するか、rootユーザーになります。sudo -s
- 新しいファイルを作成し、autodvd.rulesと呼びます
touch /lib/udev/rules.d
- 実行してCD / DVDドライブに関する情報を探します
udevadm info --query=all --attribute-walk --name=/dev/sr0
(ここではルートは必要ありませんが、両方の方法で機能します)ドライブを一意に識別するものを探します(良くも悪くも、私が選んだATTRS{vendor}=="HL-DT-ST"
、これは私のドライブです)偶然同じドライブを所有している)後でどこかにコピーします。このファイルを見て、以下のルールの例と比較するのに少し時間をかけることができます。サブシステムとATTRSはその中にあります。
- 新しいルールを編集します(私が使用する任意のエディターを使用できますが
vim /lib/udev/rules.d
、これnano /lib/udev/rules.d
も機能し、簡単です。これらを追加し、ATTRSを編集して自分のものに合わせます(これが重要な部分です。別の属性を選択する必要がある場合があります)動作しません)、およびYOURUSERフィールドとYOURGROUPフィールドを修正します。
KERNEL=="sr[0-9]*", SUBSYSTEM=="block", ATTRS{vendor}=="HL-DT-ST", SYMLINK+="dvdburner", OWNER="YOURUSER", GROUP="YOURGROUP" ACTION=="change",RUN+="/home/YOURUSER/Scripts/Bash/automountdvd.sh"
- これ
KERNEL=="sr[0-9]*"
は、すべてのscsi
デバイス(sr0-sr9)をテストすることを意味します
SYMLINK
(のようなドライブへの単なるシンボリックリンクである/dev/cdrom
本当にあります/dev/sr0
)
すべてのudevルールをリロードする必要がある場合があります。
udevadm control --reload rules
reload udev
udevadm trigger
台紙スクリプト
次のような場所に以下を保存し、/home/YOURUSER/Scripts/Bash/automountdvd.sh
YOURUSERフィールドとYOURGROUPフィールドを修正します。ところで、このスクリプトをユーザーフォルダーに配置するのは危険です。これは、ルートによって実行されるためです。つまり、ユーザーフォルダーをハッキングした場合、スクリプトを調整して任意の操作を実行し、ルートが実行することを意味します(ルートユーザーがシステムを完全に制御できるため、おそらく成功する可能性があります)おそらく、ルートのみが見ることができるフォルダーに非表示にする方が良いでしょう。あなたが実験している場合、それは結構です。
#!/bin/bash
{
mountpoint="/media/DVD"
user=YOURUSER
group=YOURGROUP
uid=$(id -u ${user})
gid=$(id -g ${group})
FS_TYPE="`blkid /dev/sr0 | grep -o 'udf'`"
if [ ${FS_TYPE} == 'udf' ]; then
echo "ID_CDROM_MEDIA set to 1, creating ${mountpoint} and attempting to mount DVD."
mkdir -p ${mountpoint} && chown ${user}:${group} ${mountpoint}
mount -t ${FS_TYPE} -o ro,uid=${uid},gid=${gid} /dev/sr0 ${mountpoint}
echo "DVD mounted at ${mountpoint}."
else
echo "Attempting to unmount -l ${mountpoint}."
umount -l ${mountpoint}
rm -rf ${mountpoint}
echo "Unmounting ${mountpoint} and removing folder ${mountpoint}."
fi
} &>> "/var/log/autodvd.log" &
mkdir anythingAtAll; sudo mount /dev/sr0 anythingAtAll