Дано:
- Домашний сервер на Debian 5.
- Физический доступ к нему.
- Доступ по SSH (не root).
- USB-флешка с разделом NTFS.
Необходимо: быстро монтировать и размонтировать флешку для чтения/записи.
Вся проблема сводится к тому, что автомантирование флешек в Дебиане по дефолту делается штатными драйверами (read-only) и только с правами на монтирование. А мне необходимо было периодически скидывать инфу на флешку или с нее. Захотелось процесс оптимизировать.
Для достижения цели необходимо решить 2 задачи:
- дать доступ к монтированию флешек (не всего, что попало, а именно USB NTFS флешек) рядовому пользователю без пароля,
- избавить от необходимости полностью писать команду монтирования каждый раз.
Делается все очень просто. Я создал shell-скрипт /root/flash следующего содержания:
#!/bin/bash
case "$1" in
1)
mount -t ntfs-3g /dev/sdc /media/flash/
;;
0)
umount /media/flash/
;;
*)
echo $"Usage: $0 {1|0}"
exit 1
esac
При передаче скрипту 1 происходит монтирование, при передаче 0 — размонтирование флешки (если точнее, то усройства /dev/sdc).
Ссылку на скрипт размещаем в /usr/bin для удобного доступа к нему:
# ln -s /root/flash /usr/bin/flash
Теперь надо разрешить выполнение этого скрипта без пароля от имени root с помощью sudoers. Выполните:
# sudoedit
И в файл добавьте следующие строки (замените feedbee на имя вашего пользователя):
Cmnd_Alias FLASH_CMD = /usr/bin/flash
feedbee ALL=(ALL) NOPASSWD: FLASH_CMD
Собственно, всё. Теперь из под вашего пользователя можно просто выполнить:
$ sudo flash 1
для монтирования флешки, и
$ sudo flash 0
для размонтирования.