Автор Тема: Отключение автомонтирования флэшек  (Прочитано 48378 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
В caja все равно значок присутствует.

Это не имеет большого значения:
Устройство подключено к порту.
Питание на него подано.
Ядро распознало устройство.
Файловый менеджер его отобразил.

Следуя логике, дальше должен быть этот Do Nothing. Но похоже что у меня и у разработчиков, разное представление об этом Ничего.

Оффлайн ∞lan∞

  • Завсегдатай
  • *
  • Сообщений: 328
Автору темы скорее нужно это
# echo "blacklist usb-storage" | tee -a /etc/modprobe.d/blacklist.confхотя ему надо только флешки, а тут получается все носители, подключаемые через юсб.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Уточните, что вам нужно:
Отключение автомонтирования флэшек

отключить automount usb-flash

Так же залез в папку /etc/udev/rules.d
какое правило тут создать чтобы флэшка не монтировалась?

или запретить монтирование usb-flash?

Это две принципиально разные вещи.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
На всякий:

Это правило в системах на udisks2, не только запретит автомонтирование, но и запретит отображение usb-flash в GUI-коммандере (thunar), но не запретит монтирование вручную через udisksctl:
# grep -v ^# /etc/udev/rules.d/80-udisks2.rules
SUBSYSTEMS=="usb", ENV{UDISKS_IGNORE}="1"

Оффлайн alt-klon

  • Начинающий
  • *
  • Сообщений: 23
Всем спасибо за ответы. В понедельник буде пробовать варианты еще ))

А нужно, чтобы пользователь не мог подсоединить флэшку ни через графический интерфейс ни через командную строку.
И только root мог бы ее смонтировать.
Да для безопасности )))
Принтер сетевой, так что в ближайшее время по USB цеплять ничего не планируется ))

Сейчас же - пользователь флэшку вставил и она смонтировалась и еще и открылась )))))

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
А нужно, чтобы пользователь не мог подсоединить флэшку ни через графический интерфейс ни через командную строку.
И только root мог бы ее смонтировать.
Да для безопасности )))

Стартеркит icewm :-)
Там нет systemd и udisks.
Всё в стиле старых Линукс без новомодных штучек:
Запрещено всё что не разрешено явно.

Набросал пару polkit рулезов и посмотрел в mate на systemd:
Мало того что они в системе на systemd с udisks2 не работают, так оно ещё не только автомонтируется, а и монтируется непривилегированным пользователем откуда только можно, несмотря на запущеный polkitd.
Но в sysv-xfce оно не только запретит монтирование в GUI, но и потребует пароль одного из пользователей wheel, если через udisksctl в терминале.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
А нужно, чтобы пользователь не мог подсоединить флэшку ни через графический интерфейс ни через командную строку.
И только root мог бы ее смонтировать.
Да для безопасности )))

Попробуйте посмотреть на эти правила:
# cat /etc/polkit-1/rules.d/55--mount-other-seat.rules
polkit.addRule(function(action)
{
    if (action.id == "org.freedesktop.udisks2.filesystem-mount")
    {
return polkit.Result.NO;
    };

    if (action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat")
    {
return polkit.Result.NO;
    };

});


Правило для экшн org.freedesktop.udisks2.filesystem-mount-other-seat запрещает монтирование HintSystem: false в caja для всех.
Правило для экшн org.freedesktop.udisks2.filesystem-mount запрещает монтирование HintSystem: false в udisksctl для всех включая wheel.
Разрешено монтирование устройств HintSystem: false (usb-flash, - несистемных устройств) для root через mount или udisksctl.
Эти правила не запрещают монтирование файловых систем на системном устройстве (sata, ide) если они не прописаны в /etc/fstab отображаясь в файловом менеджере.

Сообщите, это у вас работает?
Эти правила только для систем на udisks2.
« Последнее редактирование: 17.02.2019 13:00:05 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Ещё один вариант правил блокировки монтирования usb-flash:
Правила разрешают монтирование несистемных устройств (usb-flash, HintSystem: false) пользователям группы wheel, но запрещают всем остальным.
# cat /etc/polkit-1/rules.d/60-mount-other-seat.rules
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount") == 0) {
        if (subject.isInGroup("wheel")) {
            return polkit.Result.AUTH_ADMIN;
        } else {
            return polkit.Result.NO;
        }
    }
});


polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount-other-seat") == 0) {
        if (subject.isInGroup("wheel")) {
            return polkit.Result.AUTH_ADMIN;
        } else {
            return polkit.Result.NO;
        }
    }
});


Так же как и выше, это только для систем на udisks2.
Этот вариант и вариант выше не должны находиться в системе одновременно:
Или один из них должен отсутствовать в системе или быть *.rules.bak
« Последнее редактирование: 17.02.2019 15:19:56 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Проверьте правила на работоспособность в вашей системе (они обкатывались в лайве стартеркита mate).
Если они работают, стоит ли их занести в Советы в раздел Документация, как заметку на память?
Эти правила для систем на systemd с udisks2.
Для sysv-xfce это применимо тоже, но требует отдельного обсуждения ввиду некоторых особенностей sysv-xfce.
« Последнее редактирование: 17.02.2019 15:28:58 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
А нужно, чтобы пользователь не мог подсоединить флэшку ни через графический интерфейс ни через командную строку.
И только root мог бы ее смонтировать.

И именно по этой причине блэклистить модуль usb-storage нельзя.

Запрет чтения /run/media?
Чёрт его знает... Лично мне не нравится малейшая лазейка для запуска keylogger-bin.
« Последнее редактирование: 17.02.2019 16:22:08 от Speccyfighter »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
И именно по этой причине блэклистить модуль usb-storage нельзя.
Можно. И, даже, нужно: root может модуль загрузить, поработать и выгрузить.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Можно. И, даже, нужно: root может модуль загрузить, поработать и выгрузить.

Ага :-)
Щас:
# modprobe -r usb_storage
modprobe: FATAL: Module usb_storage is in use.
# ls -l /dev/disk/by-path/ | grep usb
#
# modprobe -r -f usb_storage
modprobe: FATAL: Module usb_storage is in use.
# grep -r usb /etc/modprobe.d/
/etc/modprobe.d/alsa-modindex.conf:#options snd-usb-audio index=0
/etc/modprobe.d/disable-usb-autosuspend.conf:options usbcore autosuspend=-1
# lsmod | grep usb_storage
usb_storage            45630  1 uas
usbcore               173010  8 uas,btusb,uvcvideo,rtsx_usb,usb_storage,usbhid,xhci_hcd,xhci_pci
scsi_mod              194640  5 uas,usb_storage,libata,sd_mod,sr_mod



# grep . /etc/modprobe.d/blacklist-usb_storage.conf
blacklist usb_storage
# lsmod | grep usb_storage
#
# modprobe usb_storage
# lsmod | grep usb_storage
usb_storage            45630  0
usbcore               173010  7 btusb,uvcvideo,rtsx_usb,usb_storage,usbhid,xhci_hcd,xhci_pci
scsi_mod              194640  4 usb_storage,libata,sd_mod,sr_mod
# ls -l /dev/disk/by-path/ | grep usb
lrwxrwxrwx 1 root root  9 фев 17 16:49 pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sdb
lrwxrwxrwx 1 root root 10 фев 17 16:49 pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sdb1
# mount /dev/sdb1 /mnt/disk/
mount: /mnt/disk: WARNING: device write-protected, mounted read-only.
# umount /mnt/disk/
# ls -l /dev/disk/by-path/ | grep usb
#
# modprobe -r usb_storage
modprobe: FATAL: Module usb_storage is in use.
# modprobe -r -f usb_storage
modprobe: FATAL: Module usb_storage is in use.


Модуль usb_storage можно загрузить и выгрузить
# lsmod | grep 'usbcore\|scsi_mod'
usbcore               173010  6 btusb,uvcvideo,rtsx_usb,usbhid,xhci_hcd,xhci_pci
usb_common              3362  1 usbcore
scsi_mod              194640  3 libata,sd_mod,sr_mod
# modprobe usb_storage
# lsmod | grep 'usb_storage\|usbcore\|scsi_mod'
usb_storage            45630  0
usbcore               173010  7 btusb,uvcvideo,rtsx_usb,usb_storage,usbhid,xhci_hcd,xhci_pci
usb_common              3362  1 usbcore
scsi_mod              194640  4 usb_storage,libata,sd_mod,sr_mod
# modprobe -r usb_storage
# lsmod | grep 'usb_storage\|usbcore\|scsi_mod'
usbcore               173010  6 btusb,uvcvideo,rtsx_usb,usbhid,xhci_hcd,xhci_pci
usb_common              3362  1 usbcore
scsi_mod              194640  3 libata,sd_mod,sr_mod

но как только устройством воспользовались, выгрузить его уже нельзя
# modprobe usb_storage
# mount /dev/sdb1 /mnt/disk/
mount: /mnt/disk: WARNING: device write-protected, mounted read-only.
# umount /mnt/disk/
# ls -l /dev/disk/by-path/ | grep usb
#
# sync && echo 3 > /proc/sys/vm/drop_caches
# modprobe -r usb_storage
modprobe: FATAL: Module usb_storage is in use.
# modprobe -r -f usb_storage
modprobe: FATAL: Module usb_storage is in use.
« Последнее редактирование: 17.02.2019 17:30:27 от Speccyfighter »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
# rmmod usb_storage
rmmod: ERROR: Module usb_storage is in use by: uas
# lsmod | grep uas
uas                    12493  0
usb_storage            47494  1 uas
usbcore               186274  7 usbhid,usb_storage,ehci_hcd,uhci_hcd,usblp,uas,ehci_pci
scsi_mod              201211  5 sd_mod,usb_storage,libata,uas,sr_mod
# rmmod uas
# rmmod usb_storage
#

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
# rmmod usb_storage
rmmod: ERROR: Module usb_storage is in use by: uas
# lsmod | grep uas
uas                    12493  0
usb_storage            47494  1 uas
usbcore               186274  7 usbhid,usb_storage,ehci_hcd,uhci_hcd,usblp,uas,ehci_pci
scsi_mod              201211  5 sd_mod,usb_storage,libata,uas,sr_mod
# rmmod uas
# rmmod usb_storage
#

Ага.
Спасибо за подсказку.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Другой вопрос, что udev, похоже, не смотрит в /etc/modprobe.d и подгружает usb_storage всё равно. Или не он, а кто-то ещё.