Предотвратите показ раздела nautilus в сценарии bash

К сожалению, декорации клиентской стороны живы и хороши на стороне GNOME пруда, и, начиная с GTK + 3.12, GTK-приложения имеют CSD по умолчанию даже для менеджеров окон, отличных от GNOME.

Это впечатляет и полностью нарушает работу пользователей для пользователей, не являющихся GNOME.

8
задан 22 April 2012 в 22:52

5 ответов

Попробуйте это предложение: http://www.worldofnubcraft.com/969/hide-your-disks-or-partitions-from-nautilus/

Я уверен, что это связано с udev сигналы и обработка.

3
ответ дан 25 May 2018 в 12:44
  • 1
    Можете ли вы опубликовать контент ссылки здесь? Ответ с помощью только ссылки не очень приветствуется в сообществе AU. – Mahesh 17 April 2012 в 12:42
  • 2
    Это работает. На данный момент слишком мало деталей, чтобы принять ответ. Я подтвердил вручную, что он работает для создания файла и вызывает udevadm trigger. Просто хочу подтвердить, что он работает в скрипте. Я напишу подробности в вопросе, если вы еще не добавили сюда. – bcbc 18 April 2012 в 06:25
  • 3
    Я не хотел повторять, что ясно изложено в ссылке. В основном, это требует добавления правила в /etc/udev/rules.d/, которое говорит udev не обрабатывать определенные устройства - каждое устройство получит свою собственную строку, указывающую: KERNEL == "sda1", ENV {UDISKS_PRESENTATION_HIDE} = "1 ". Это не изменяет поведение системы или ядра. Это просто говорит UDEV, чтобы скрыть представление диска. Nautilus полагается на обработку правил udev для именно такого поведения. – papashou 28 April 2012 в 11:00

Попробуйте обернуть ваш скрипт:

#!/bin/bash
#

# disable nautilus automount
#
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  false

# put your script here  
#
...

# enable back nautilus automount
# 
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  true

Не проверено, потому что я на 10.04

UPDATE:

#!/bin/bash
#

# disable nautilus automount
#
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  false

# put CALLING your script here to survive its crashes
#
/bin/bash -c "/whenever/it/is/placed/script.sh"

# enable back nautilus automount
# 
gconftool --type Boolean --set /apps/nautilus/preferences/media_automount  true
1
ответ дан 25 May 2018 в 12:44
  • 1
    Спасибо за предложение ... Я не хочу изменять настройки, потому что я не уверен, что он вступает в силу немедленно, для каждого выпуска требуется другой код, он неэлегантен, и если сценарий прерывается, он оставляет пользователя в нежелательном состоянии - я также не считаю, что это необходимо. То, что мне нужно, это механизм, с помощью которого nautilus уведомляется о монтировании и как его обходить. например Udev? DBus? Что-то в этом роде. – bcbc 16 April 2012 в 22:04
  • 2
    + Я не хочу изменять настройки, потому что я не уверен, что это вступит в силу сразу . Это вопрос, который нужно проверить (достаточно просто). + он требует разного кода для каждой версии - он может потребовать или не может 50 | 50, как если бы я мог встретить дино на улице) ) + это неэлегантно - по сравнению с какой альтернативой? – zuba 16 April 2012 в 23:14
  • 3
    + , если сценарий прерван, он оставляет пользователя в нежелательном состоянии - многие пакеты (aptitude например), когда прерваны, делают это. Существуют подходы, чтобы избежать этого побочного эффекта. Например. вы можете поручить cron проверять каждые 1мин, если скрипт запущен, и если не изменить настройку. Или вы можете запустить скрипт из другого, который контролирует настройку. – zuba 16 April 2012 в 23:15
  • 4
    Я хочу сказать, что не требуется изменять настройки для рабочего стола. Я также должен был добавить, что этот скрипт может работать на ubuntu / xubuntu / kubuntu / lubuntu и т. Д., Поэтому он добавляет высокий уровень сложности и риска. – bcbc 17 April 2012 в 00:12
  • 5
    Альтернатива blacklisting раздела с udisk (см. Papashous link) требует sudo и не переносима на разных машинах, поэтому она будет еще более сложной и рискованной. – Egil 17 April 2012 в 13:32

Вы можете предотвратить автоматическую настройку флеш-накопителя, добавив новое правило udev. В этом правиле вы можете указать флэш-диск своим поставщиком, серийным номером и другими атрибутами. См. Строки ATTRS {} в выводе:

udevadm info -a --name=sdb1

Этот скрипт вы должны поместить в папку ATTRS {} со специальным именем файла, например. 81-usb-wubi-move.rules

Правило может выглядеть как

ACTION=="add", KERNEL=="sdb?", SUBSYSTEMS=="usb", ATTRS{serial}=="001CC07CEE5EFB91C91B235C", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_PRESENTATION_NOPOLICY}="1"

См. Также:

Как понять поток обнаружения USB? Написание udev правил udev правило скрыть разделы из thunar [разрешено] HakAday - Как написать правила udev
1
ответ дан 25 May 2018 в 12:44
  • 1
    Похоже, что это должно быть потенциальным обходным путем - мне нужно время, чтобы пересмотреть это и провести эксперимент, и у нас не будет шанса до сегодняшнего дня (тогда будет дана обратная связь). В идеале ответ объяснит, почему это происходит (по сравнению с запуском mount с терминала), но если я получу хорошее обходное решение, я тоже соглашусь с этим. – bcbc 17 April 2012 в 23:24
  • 2
    Это та самая – RobotHumans 18 April 2012 в 09:39

Не проиндексирован .... просто догадка.

Установите файловую систему в дерево, недоступное пользователю nautilus, например. в подкаталоге подкаталога / root или / home / whoelse или a / tmp, принадлежащем и защищенному кем-то другим

Имейте в виду, что неплохо было бы установить одно и то же аппаратное устройство на двух точках подключения и изменить его из.

В конфигурации (12.04beta) возможна некоторая конфигурация человека Ubuntu-> Настройки системы-> Детали-> Съемные носители. Некоторые параметры могут быть настроены как «ничего не делать», и это может избежать всплывающих окон.

Документация на https://help.ubuntu.com/community/Mount/USB может быть полезна для 9.10, но не работает с 12.04. Ключи для gconf-редактора, о которых они упоминают, больше не используются.

0
ответ дан 25 May 2018 в 12:44
  • 1
    Он монтируется в каталоге под / tmp (и нигде больше). – bcbc 15 April 2012 в 08:41
  • 2
    Но зарегистрированный пользователь все равно может получить доступ / tmp. Предложение состояло в том, чтобы использовать каталог, к которому пользователь, которому не удалось войти в систему, не может получить доступ. – Paul 15 April 2012 в 09:19
  • 3
    Я использовал chmod 700 в каталоге ... выглядел многообещающим, а затем всплыл окно сообщения (без заголовка окна): «Не удалось открыть папку для файловой системы 10 ГБ», «Никакое приложение не зарегистрировано как обращение с этим файлом» ; – bcbc 15 April 2012 в 10:33
  • 4
    Захватывающий. Он уверен, что он прилагает все усилия. Может быть, у меня будет время поиграть с этим позже. – Paul 15 April 2012 в 10:38

Попробуйте mount с флагами -n и -i.

0
ответ дан 25 May 2018 в 12:44
  • 1
    Я пробовал это - в значительной степени был через все варианты монтирования, которые я могу. Триггер происходит в другом месте. – bcbc 17 April 2012 в 23:22

Другие вопросы по тегам:

Похожие вопросы: