Главная Файлы Форум Галерея Гостевая книга Обратная связь Карта сайта Поиск
 

 

Моё место работы

СитиСервис
  • Заправка и ремонт лазерных картриджей
  • Ремонт любых принтеров и копиров
  • Оригинальные и совместимые картриджи
  • Доставка бесплатно (от 2-х картриджей)
  • Накопительная система расчётов для корпоративных клиентов
Телефон
+7 (4722) 373-983
8-980-326-01-23
Адрес E-mail
mybelpost@gmail.com

Привет, Гость

Войти
Идентификация
Я забыл свой пароль
Регистрация

Разделы -> Статьи -> Linux - разное -> Ограничение запуска ...

Запуск windows-приложений под WINE из белого списка

   Поднадоела ситуация, когда под WINE пользователь ставит свой софт. Решил ограничить права на установку/запуск windows-приложений под WINE.

Скрипт последний раз изменён 18.07.2012

  Пришла идея состряпать белый список приложений и bash-скрипт, который заменит собой настоящий файл wine и, который будет решать запустить запрошенное приложение или отказать.
Вроде бы получилось. Проверил под Debian-6 Squeeze и Ubunru-11.04 с установленным wine и перечнем льготных профессий под ним.
(В Debian используется среда GNOME и файловый менеджер Nautilus).

И так, Ваши действия:

Качаем архив со скриптом и белым списком - block_wine_soft.tar.bz2,
распаковываем любым известным способом,
запускаем терминал, заходим в каталог с распакованными файлами и получаем права root.
Переименовываем настоящий wine (пример приведён для wine установленного в /usr/bin)

# mv /usr/bin/wine /usr/bin/wine1

Копируем на место настоящего вайна мой скрипт

# cp ./wine /usr/bin

Разадаём права

# chown root:root /usr/bin/wine
# chmod 755 /usr/bin/wine

Копируем белый список в /etc

# cp ./list-wine-soft /etc

Раздаём права

# chown root:root /etc/list-wine-soft
# chmod 755 /etc/list-wine-soft

Открываем на редактирование файл белого списка

# gedit /etc/list-wine-soft

Вписываем екзешники или линки, которые можно запускать.
Синтаксис: одна строка - один екзешник или линк, не полный путь, а только имя файла с расширением.
В моём файле list-wine-soft примеры приведены.

Если приложения имеются в главном меню GNOME, то имена линков нужно брать оттуда, иначе всегда будет запрет. В Ubuntu в лаунчере win-приложения почему-то не появляются, потому берём просто имена экзешников из каталога их установки.

Ниже листинг скрипта:
#!/bin/bash
# Скрипт позволяет запускать windows-приложения только из белого списка
# Проверялось в Debian-6.0.2 Squeeze (среда - GNOME, файловый менеджер - Nautilus)
#
# Будем считать, что настоящий wine расположен в /usr/bin
# исходя из этого,
# для работы скрипта необходимо переименовать /usr/bin/wine в /usr/bin/wine1
# Данный скрипт должен иметь имя wine и должен лежать по пути настоящего wine, т.е в /usr/bin
# Если путь к настоящему вайну отличается от /usr/bin, то необходимо исправить скрипт
# в строке exec /usr/bin/wine1 $fpath вместо /usr/bin/wine1 вписать путь к настоящему wine1
# Узнать путь к файлу wine можно командой which wine
#
# Белый список приложений должен лежать в каталоге /etc и иметь имя list-wine-soft
# владелец обоих файлов root и права 755, чтобы пользователь не мог вписать своё приложение.
# Синтаксис файла list-wine-soft:
# одна строка - имя одного исполняемого файла windows или линка на него
# К примеру,
# Перечень льготных профессий.lnk
# OMS.exe

IFS=$'\t\n' # Переопределение разделителя (для имён с пробелом)

s=0

arg=$#

if [[ "$arg" == 1 ]]
then
fpath=$1
else
fpath=$3
fi

fileselect=$(basename "$fpath")

while read line
do

if [[ "$line" == "$fileselect" ]]
then

exec /usr/bin/wine1 $fpath
exit 0

else

s=$(echo "$s + 1" | bc)

fi

done < /etc/list-wine-soft

if [[ "$s" != 0 ]] && [[ "$fpath" != "" ]]
then

zenity --title="Система безопасности" --warning --text="У Вас нет прав\nна запуск данного windows-приложения\nпод ОС Linux в среде WINE\!\n\nОбратитесь к системному администратору.\n\nPS: Админ шоколадки не пьёт\!"

fi

echo $s


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

Ниже пример того, как включить в белый список органайзер от ОМС плейера для ЦОРов


После установки ОМС плейера его кнопки запуска должны появиться в главном меню GNOME в разделе Wine.

Кликаем правой кнопкой мыши по главному меню GNOME, выбираем пункт "Изменить меню".

В появившемся окне в левом поле "Меню:" щёлкаем по чёрному треугольнику, который слева от пункта "Wine" - развернётся дерево каталогов. В дереве аналогично разворачиваем "Программы" и "RNMC", далее щёлкаем по "OMS". В правом поле "Элементы:" появятся пункты меню пренадлежащие ОМС плейеру. Щёлкаем один раз по "Органайзер пользователя ОМС" и жмём кнопку "Свойства".
В появившемся окне смотрим, что неписано в поле "Команда". Для Органайзера там должно быть вот это (только путь будет отличаться от приведённого в примере):

env WINEPREFIX="/home/skv/.wine" wine C:\\windows\\command\\start.exe /Unix /home/skv/.wine/dosdevices/c:/users/Public/Главное\ меню/Программы/RNMC/OMS/Органайзер\ пользователя\ ОМС.lnk

Для включения в белый список нам нужно только то, что находится справа после последнего слеша (/). В данном случае это  Органайзер\ пользователя\ ОМС.lnk

Теперь открываем терминал, получаем права root и запускаем на редактирование файл белого списка:

gedit /etc/list-wine-soft

В самый низ дописываем

Органайзер\ пользователя\ ОМС.lnk

Сохраняем изменения и закрываем терминал.

Закрываем редактор главного меню GNOME.

Пользуемся!

Если вы создадите кнопку запуска на панели GNOME путём щелчка правой кнопки мыши по пункту меню "Органайзер пользователя ОМС" и выбора пункта "Добавить эту кнопку запуска на панель", то скрипт тоже нормально будет отрабатывать, а также если вы добавите кнопку запуска на рабочий стол аналогичным путём.


А вот ссылка на решение проблемы только за счёт изменения прав на каталог .wine.

Опубликовано: foxadmin, Автор/источник: Сакрюкин К.В. 20 Январь 2012 17:12:51

Комментировать

Вы не залогинены! Регистрация

Комментарии

Страницы: 
[11:26:55 20.07.2012] Опубликовано Константин
foxadmin
Протестируйте пожалуйста скрипт под UBUNTU с интерфейсом UNITY. У меня в виртуалке юнити не запускается.
[11:24:14 20.07.2012] Опубликовано Константин
foxadmin
Скрипт исправил. Проверил под GNOME. Работает если запускать приложения из главного меню, с панели GNOME, и прямым щелчком по exe-файлу или lnk. Главное правильно прописать имя запускаемого файла в белом списке. Пример добавления в белый список органайзера от ОМС плейера я включил в статью.
[20:23:39 04.07.2012] Опубликовано Константин
foxadmin
Какая именно операционная система у вас? Через две недели, когда выйду из отпуска напишу скрипт под вашу ОС.
[11:24:27 04.07.2012] Опубликовано Гость
No avatar
к сожалению вместо запуска программы из белого списка выдаёт в консоль циферку 1 и ничего не запускает :(
Страницы: 

Афоризмы, мысли

Когда ты говоришь: „Я написал программу, которая роняет Windows“, люди просто тупо смотрят на тебя и отвечают: „Да мне такие программы вместе с системой достались, бесплатно.“

/Линус Бенедикт Торвальдс/

Счётчик

Сейчас на сайте - 1 (0 зарег.)
Всего хитов1150 
Сегодня хитов1150 
Сегодня хостов291 

Откуда гости наши?

 
Powered by ReloadCMS 1.5.0.
© 2004-2012 ReloadCMS Team
RSS AggregationPHP powered
Генерация страницы: 0.33
  Яндекс.Метрика
    Сакрюкин К.В.   Яндекс цитирования    
 
Здесь всё можно копировать и цитировать, но рабочая ссылка на мой сайт обязательна!