Отключить автомонтирование usb в linux
В Xubuntu 14.04 я попытался отключить автоматическое подключение USB, создав следующие два файла, как показано здесь: Предотвращение автоматического подключения и перезагрузки определенного USB-устройства:
После перезагрузки USB все еще автоматически подключен.
Затем я установил утилиту gnome-disk, которая установила, но значок запуска не был создан, и ввод 'gnome-disk-utility' не распознается - я не могу понять, как его запустить. Я заметил, что gnome-system-tools установлен - но опять же я не могу понять, как это начать.
1 ответ
Если udisks2 используется, необходимо выполнить следующие действия, чтобы не выполнять автоматическое монтирование устройства. Во-первых, вам нужно получить информацию об устройстве, чтобы написать правило udev. Размонтировать устройство, войти через root
затем выполните эту команду:
После этого подключите устройство к компьютеру. Теперь вы можете увидеть относительную информацию об устройстве. Вам нужны ENV и ENV . Особенно ID_FS_UUID важен, потому что это уникальное значение для устройства. Нажмите Ctrl + C, чтобы выйти из udevadm.
Затем выполните следующую команду, чтобы получить другую необходимую информацию
Замените /dev/sdX на ваш диск. Найдите значения ATTRS и ATTRS . Необходимо указать значения SUBSYSTEM AND DRIVER, чтобы указать, к какому блоку устройства будет применено это правило, и ENV="0", чтобы сделать устройство не монтируемым автоматически. Если вы получите всю необходимую информацию, самое время написать правило udev. Откройте новый файл правил:
И напишите информацию, которую вы получили к нему:
Сохраните файл и закройте его. Правило в каталоге /etc/dev/rules.d/ имеет самый высокий приоритет. Написав правило в этом каталоге, мы предотвратим любую проблему, которая может помешать правилу.
Теперь вы можете проверить свое правило, чтобы увидеть, работает оно или нет. Во-первых, вам необходимо освоить "devpath" устройства. Вы увидите строки в выводе
Команда похожа на эту строку:
Некоторые из них очень длинные и бесполезны для вас. Вы должны сократить эту линию до степени, которая полезна для вас. Чтобы узнать, где вырезать, выполните эту команду:
Вы увидите строки относительно устройства, аналогичные следующим:
Обратите внимание на стоимость после USB (2-1,5). Это показывает, что путь вашего устройства и где вырезать. Так что "devpath" этого устройства
Теперь вы можете проверить новое правило udev, выполнив следующую команду:
udevadm test /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5
Ближе к концу вывода вышеуказанной команды, если вы видите строку
это означает, что ваше новое правило работает. Чтобы применить новое правило, вам необходимо перезагрузить
Если это не работает, запустите
После этого вы можете увидеть, работает ли новое правило или нет, отключив устройство и подключив его снова. Ваше устройство будет отображаться в лаунчере Unity следующим образом:
В моем случае "nd" - это устройство, к которому применяется правило udev без автомонтирования. Если я нажму значок устройства, оно будет смонтировано.
Несколько новых способов работающих на новых дистрибутивах:
Для включения:
chmod 0755 /media
Суть этого способа в том, что бы запретить пользователю читать данные с флешки, cd/dvd-диска и т.д. Большинство современных дистрибутивов с включённым автомонтирование монтируют все сменные устройства в директорию /media, поэтому запретив доступ к ней, запрещаем доступ ко всему ее содержимому.
Этот способ удобен, если нужно на одном и том же компьютере кому-то разрешить, а кому-то запретить доступ к внешним устройсвам хранения. В примере единственный пользователь, который может писать и чатать данные с флешки это root (если владелец и группа каталога /media - root).
Если сменить группу каталогу /media например на "storage" и сменить права на /media:
chmod 0750 /media
Только пользователи из группы "storage" смогут получить доступ к сменным носителям. (По поводу групп это все в теории так на практике не проверял)
P.S. Само устройство будет появляться и монтироватся, но с данными на нем работать будет нельзя.
P.S. CD/DVD диски пишутся НЕ копирование файлов в папку, поэтому запретить запись на них так не получится.
Для включения:
rm /etc/modprobe.d/blacklist-storage.conf; modprobe usb_storage
P.S. Если правильно помню, /etc/modprobe.d есть не во всех дистрибутивах, так что возможно потребуются незначительные изменения.
Все команды нужно выполнять от root. Тестировалось на Ubuntu 10.10.
ВНИМАНИЕ! все ниже описанное не работает с новым udev, он запрещает пустое имя устройства. Оставлено, так как может содержать полезную информацию.
Нужно всего лишь выполнить команду:
Разумеется все от root.
Перезагружаться, или что-то перезапусткать не нужно.
Теперь немного о том зачем все это нужно, и, что здесь все таки происходит.
Иногда, к примеру в организациях, нужно запретить сотрудникам использовать съемные носители данных(флешки, карточки, жесткие диски и т.д.). Конечно можно просто отключить USB в BIOS, но если к компьютеру подключен принтер, сканер, мышь или еще что, то задача усложняется.
Все решается просто, благодаря udev. Если коротко, то это подсистема Linux, которая отвечает за появление новый файлов устройств. Для нас важно, что можно писать правила для этих устройств.
Так выглядит наше правило:
ATTRS=="1", SUBSYSTEMS=="block" , NAME=""
ATTRS=="1"
Нужны только отключаемые устройства (что бы жесткий диск случайно не отключить).
SUBSYSTEMS=="block"
Нас интересуют устройства хранения данных. (Я пробовал другие подсистемы и драйвера, но в этом случае отдельные партиции все равно подключались).
NAME=""
Собственно действие. Не создавать файл устройства.
- Нельзя выбрать пользователей которым можно или нельзя подключать флешки. (времена, когда только пользователи, входящие в группу plugdev, могли подлючать устройства прошли вместе с pmount)
- Приведенное правило, теоретически, может совпасть с каким-нибудь устройством, которое использует SUBSYSTEMS=="block" , но при этом не является устройством хранения. В этом случае в правило нужно добавить исллючение, об этом хорошо написано здесь.
Если подняться на уровень HAL, то открываются очень интересные возможности, как к примеру выбор пользователей кому,что и когда можно подключать. А если сюда еще замешать SELinux и/или FUSE то остановить ограничение пользователей может только фантазия :)
Алгоритм создания белого списка USB-флеш-накопителей состоит из 2 этапов:
- Запрет монтирования всех USB-флеш-накопителей
- Разрешение монтирования некоторых устройств
- Разрешение монтирования некоторых устройств
- Запрет монтирования всех иных USB-флеш-накопителей
Первый этап – запрет автомонтирования
Вариант с параметром UDISKS_IGNORE
Для отключения автомонтирования USB-флеш-накопителей нужно будет создать правило для udev.
со следующим содержанием:
Для того, чтобы новое правило вступило в силу, нужно ввести команду обновления правил udev
После этого, можете проверить и подключить USB-флеш-накопитель, как результат, он не откроется.
Вариант с изменением параметра authorized
Для отключения автомонтирования USB-флеш-накопителей нужно будет создать правило для udev и исполняемый скрипт запрета монтирования USB-флеш-накопителей.
Измените права на скрипт:
Параметр authorized отвечает за монтирование USB-флеш-накопителя в момент подключения к ПК.
со следующим содержанием:
Для того, чтобы новое правило вступило в силу, нужно ввести команду обновления правил udev
После этого, можете проверить и подключить USB-флеш-накопитель, как результат, он не откроется.
Примеры выбора устройств по определенным свойствам
Для создания белого списка USB-флеш-накопителей, нужно знать атрибуты накопителя.
1) Определяем нашу флешку:
2) Смотрим атрибуты:
Вариант составления белого списка по первому варианту
в выводе мы увидим серийный номер, модель и значение максимального потребления тока:
Запишем эти значения в файл правил в качестве разрешающих
Для того чтобы новое правило вступило в силу, нужно ввести команду обновления правил udev
Полный список атрибутов, по которым можно осуществить выборку, находится в выводе команды:
Вариант составления списка по второму варианту
Выборка по серийному номеру устройства
Выборка по названию модели. Точное название смотрите в выводе команды
Для удобства, когда полный список параметров устройства известен, можно производить отбор по конкретному параметру:
Логика данного правила отлична от первого варианта. В 1 варианте происходило блокирование сразу всех usb флеш-накопителей и лишь потом разграничение на белый список шло. В данном варианте сначала происходит разграничение на белый список. Только потом добавление устройства в черный список. Такое действие связано с тем, что параметр authorized появляется в момент монтирования и если его изменить в 0, то далее он становится недоступен. Соответственно, сначала требуется проверить подходит флешка под белый список и если да, то разрешить ей монтирование.
Для того, чтобы новое правило вступило в силу, нужно ввести команду обновления правил udev
Полный список атрибутов, по которым можно осуществить выборку, находится в выводе команды:
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Дистрибутивы Linux при загрузке запускают ряд сервисов, которые в той или иной степени могут пригодиться многим пользователям. Но ведь не все они нам нужны, во имя безопасности.
Вот и я в своем ноутбуке на борту с Linux Mandriv-ой нашел не нужные мне сервисы (службы), которые запускались при загрузке. Например, smb (Протокол SMB/CIFS дает возможность открыть общий доступ к файлам и принтерам) зачем он мне нужен? Попутно я еще отключил несколько сервисов в Linux, которые не связаны с безопасностью сети, ради сокращения времени загрузке ОС.
Некоторые приложения не смогут работать, если заблокировать сервис, от которого они зависят. В настойках KDE; Параметры системы>Системное администрирование>Запуск и завершения>Управление службами я отключил BlueDevil (службу управления Bluetooth). Зачем он мне нужен, если у меня нет на компьютере адаптера Bluetooth.
Отключите сервис автомонтирования устройства в Linux
Я долго не мог решить эту проблему в KDE, но в итоге нашел отличное решение через polkit. Я назову её отличной штукой, в которой можно создать свою политику через механизм паролей для различных действий пользователя. Другими словами мы можем запрещать пользователям, что-то производить в системе. В нашем случае подключать usb-flash (флешку) без пароля. Итак, приступим.
Первым делом я отправился по файловой системе в /etc/polkit-1/localauthority/, там я обнаружил ещё несколько каталогов под названиями:
10-vendor.d
20-org.d
30-site.d
50-local.d
90-mandatory.d
Я выбрал 20-org.d (вроде для организаций). На самом деле неважно, какой каталог вы выберете.
Далее создал файл внутри каталога /20-org.d под названием 10-flash-mounting-policy.pkla
и наполнил его таким содержимым:
[Disable
mounting removable disks to all]
Identity=unix-group:*
Action=org.freedesktop.udisks.filesystem-mount
ResultAny=no
ResultInactive=no
ResultActive=no
[Enable
mounting removable disks to some users]
Identity=unix-user:pavel
Action=org.freedesktop.udisks.filesystem-mount
ResultAny=no
ResultInactive=no
ResultActive=auth_self
Теперь на моём компьютере может подключать флешки только пользователь pavel (то есть я) и то, только после ввода пользовательского пароля.
В Gnome 2 отключить автомонтирование usb флешки можно средствами рабочего стола. Для этого заходим в Система > Административные > Пользователи и группы и имя вашего пользователя. Переходим на вкладку Advanced Settings > User Privileges, убираем галочки напротив опции Access External Storage Devices Automatically, Mount Userspace Filesystems и Use CD-ROM Driver. При таких настройках в gnome 2, тоже не получится подключить устройство без ввода пароля.
P.S.: Ограничьте доступ от имени root.
Конечно, современные Linux не позволяют регистрироваться от имени root при загрузке системы. По умолчанию учетные записи новых пользователи ограничены в привилегиях, нельзя устанавливать ПО или менять настройки, влияющие на рабочие столы других пользователей, и это правильно. Для выполнения таких операций требуется права супер- пользователя. В Fedora, Mandriva и других подобных дистрибутивах требуется команда su. В Debian, Ubuntu, и.т.д. команда sudo.
Регулярно просматривайте журнал /var/log/auth.log, для выявления успешных и не удачных попыток регистрации обращения к пользователю root.
Я бы не советовал добавлять терминал от супер пользователя в автозагрузку, как делает один мой знакомый. А то получится, что при загрузке определенной учётной записи будет открыт терминал с правами root, что полностью противоречит идеологии Linux.
Также я советую создать одну учетную запись без требования пароля для входа в систему. В будущем, не дай бог, если украдут ваш компьютер, пусть будет возможность у нового владельца пользоваться вашей операционной системой, которую мы настроим от воровства.
2 комментария Отключаем ненужные сервисы в системах Linux
В наши дни очень большую популярность у пользователей набрали USB флешки. Они используются для обмена файлами, различными фильмами и документами, установки операционных систем, а также восстановления системы после сбоя. Чтобы работать с флешкой в Linux ее нужно примонтировать в корневую файловую систему.
Дело в том, что организация файловой системы Linux немного отличается от того, что мы привыкли видеть в Winodws. Здесь нет никаких дисков C,D,E и так далее, есть только корень, самая верхняя точка файловой системы, в подкаталоги которой подключаются все жесткие диски и внешние носители.
Если в системе используется окружение рабочего стола, то оно, как правило, берет на себя всю низкоуровневую работу чтобы выполнить монтирование флешки в linux. Система обнаруживает подключенную флешку и в системном лотке всплывает уведомление о подключенном устройстве. Дальше остается кликнуть по значку флешки, чтобы система выполнила все нужные для ее монитрования действия. Но если окружение рабочего стола не запущенно или вам нужно работать в консоли можно выполнить все действия по монтированию флешки вручную.
В этой инструкции мы рассмотрим монтирование usb флешки в linux через терминал, а также настройку автоматического монтирования для оконных менеджеров, которые не поддерживают такую возможность.
Монтирование флешки в Linux
Самое первое, что нужно сделать после того, как вы подключили флешку - узнать имя ее файла в системе. В Unix все устройства имеют свои файлы и именно через эти файлы система и программное обеспечение взаимодействуют с ними.
Файлы флешек и других устройств хранения данных находятся в каталоге /dev. Устройства нумеруются по алфавиту sda, sdb, sdc, sdd и т д. Так как флешка подключается последней у нее будет старшая буква. Например, sdb или sdc. Имя sda принадлежит жесткому диску. Можно, конечно, просто посмотреть содержимое каталога /dev/, но такой способ ненадежный. Мы воспользуемся утилитой fdisk.
Подключите флешку и выполните:
Как видите, здесь мы можем посмотреть детальную информацию об устройстве. Имя файла, список разделов, формат таблицы разделов, список разделов. А главное для нас, размер раздела и его файловую систему. Теперь не сложно понять какая из них флешка. В этом примере это /dev/sdc1
Создаем папку для монтирования:
sudo mkdir /mnt/usb
Теперь монтируем флешку с помощью команды mount:
sudo mount /dev/sdc1 /mnt/usb
Если знаете файловую систему флешки, то лучше ее указать с помощью опции -t. Чаще всего используется FAT, так как ее легко открывают как Windows так и Linux системы:
sudo mount -t vfat /dev/sdc1 /mnt/usb
Монтирование осуществляется от суперпользователя, но если нужно чтобы отмонитровать флешку мог любой нужно указать опцию users:
sudo mount -t vfat -o users /dev/sdc1 /mnt/usb
По умолчанию владельцем файлов на флешке при монтировании устанавливается root, поэтому если вы захотите работать с флешкой через файловый менеджер, то нужно будет его запускать с правами суперпользователя или же сразу примонтировать флешку в linux таким образом, чтобы владельцем был ваш пользователь. Для этого укажите группу и id своего пользователя в опциях uid и gid:
sudo mount -o users,uid=1000,gid=1000 /dev/sdc1 /mnt/usb
Удостовериться что флешка подключена можно посмотрев содержимое каталога, в который мы ее монтировали:
Или выполнив команду mount:
После завершения работы с флешкой не забудьте ее отмонтировать. Потому что иначе данные могут быть не сохранны или вообще повреждена файловая система флешки:
sudo umount /dev/sdc1
Автоматическое монтирование флешки в Linux
Популярные окружения рабочего стола выполняют монтирование флешки linux автоматически, как только она подключена к системе или по клику на ярлыке. Мы можем это реализовать с помощью службы udisks2.
Мы тоже можем использовать его для ручного монтирования. Здесь даже есть несколько плюсов. Во-первых, мы можем монтировать без прав суперпользователя, во-вторых, не нужно создавать папку.
Для монтирования используется такая команда:
udisksctl mount -b /dev/sdc1
Здесь /dev/sdc1 - файл нашей флешки, а опция -b указывает, что нужно монтировать блочное устройство. Так же как и в mount здесь можно задать опции монтирования -o и файловую систему -t. Флешка будет примонтирована в папку /run/имя_пользователя/uuid-флешки/
Для размонтирования используется аналогичная команда:
udisksctl unmount -b /dev/sdc1
Автоматическое монтирование usb флешки в linux можно настроить с помощью утилиты udiskie. Все новые подключенные флешки будут автоматически подключаться, после подключения устройства будет всплывать окно с предложением открыть файловый менеджер, а также значок, с помощью которого можно получить доступ к каждому из устройств.
Устанавливается утилита в Ubuntu командой:
sudo apt install udiskie
Дальше остается запустить программу:
Теперь все подключаемые устройства будут автоматически монтироваться с помощью udisks. Рассмотрим что значат опции:
- -a - выполнять автоматическое монтирование
- -n - показывать всплывающее уведомление
- -t - показывать значок в трее.
Выводы
Теперь монтирование флешки linux не вызовет у вас проблем. Даже если у вас не будет работать окружение рабочего стола и придется делать все вручную. Если остались еще вопросы, спрашивайте в комментариях.
Читайте также: