Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Создаём новый файл /etc/udev/rules.d/automount.rules со следующим содержанием:
- ACTION=="add" KERNEL=="sd[c-z][0-9]" RUN+="/bin/mkdir -p /mnt/%E{ID_VENDOR}_%E{ID_MODEL}_%n"
- ACTION=="add" KERNEL=="sd[c-z][0-9]" RUN+="/bin/mount -o uid=1000 /dev/%k /mnt/%E{ID_VENDOR}_%E{ID_MODEL}_%n"
- ACTION=="remove" KERNEL=="sd[c-z][0-9]" RUN+="/bin/rmdir /mnt/%E{ID_VENDOR}_%E{ID_MODEL}_%n"
- Укажем udev-у, что появилось новое правило:
- sudo udevadm control --reload-rules
- Результат
- Вставляю флешку и вижу каталог /mnt/KINGMAX_Flash_Disk_1, в котором содержимое флешки. Размонтирую и вынимаю — каталог пропал.
- Замечания
- 1. KERNEL==«sd[c-z][0-9]» — значит, что будет срабатывать на все устройства вида /dev/sdc1 /dev/sdc2, /dev/sdg7. У меня 2 жестких диска: sda и sdb, поэтому я начал regex с «с».
- 2. mount -o uid=1000 — зашит id пользователя, который будет owner-ом. Если у вас не стандартный, то подправьте (проверка id -u). Конечно, можно действовать через группы и маски, но я выбрал наиболее простое решение.
- umount
- Проблему размонтирования (нужны права суперпользователя) я решил так:
- 1. sudo visudo
- 2. добавить строчку %wheel ALL= NOPASSWD: /bin/umount
- upd
- Как заметил darkk, ID_VENDOR="; /bin/rm -rf /;" — потенциальная дыра в безопасности, поэтому лучше перестраховаться в ущерб наглядности:
- ACTION=="add" KERNEL=="sd[c-z][0-9]" RUN+="/bin/mkdir -p /mnt/%k"
- ACTION=="add" KERNEL=="sd[c-z][0-9]" RUN+="/bin/mount -o uid=1000 /dev/%k /mnt/%k"
- ACTION=="remove" KERNEL=="sd[c-z][0-9]" RUN+="/bin/rmdir /mnt/%k"
- #_________________ANOTHER___VARIANT_____________________________________________#
- cat /etc/udev/rules.d/99-mnt.rules
- KERNEL!="sd[a-z][0-9]", GOTO="end-of-file"
- KERNEL=="sd[a-z]", GROUP="disk"
- ACTION=="remove", KERNEL=="sd[d-z][0-9]", ENV{ID_FS_TYPE}!="", RUN+="/bin/sed -i '/\/dev\/%k /d' /etc/fstab"
- ACTION=="remove", KERNEL=="sd[d-z][0-9]", ENV{ID_FS_TYPE}!="", RUN+="/bin/rmdir /media/$env{ID_FS_TYPE}-%k"
- ACTION=="add", KERNEL=="sd[a-z][0-9]", ENV{ID_FS_TYPE}!="", RUN+="/bin/mkdir -p /media/$env{ID_FS_TYPE}-%k"
- # монтирование раздела fat32
- ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k vfat rw,noauto,noatime,dmask=022,gid=user,user,fmask=133,iocharset=koi8-r 0 0' /etc/fstab", OPTIONS="last_rule"
- # монтирование раздела ntfs
- ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="ntfs", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k ntfs-3g rw,noauto,dmask=022,fmask=133,gid=user,user,iocharset=koi8-r 0 0' /etc/fstab", OPTIONS="last_rule"
- # монтирование прочих ФС
- ACTION=="add", KERNEL=="sd[a-z][0-9]", ENV{ID_FS_TYPE}!="", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k $env{ID_FS_TYPE} defaults,user 0 0' /etc/fstab"
- LABEL="end-of-file"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement