Автор Тема: Скрипт-звонилка с мордой на tk myppp. Ищется смелый человек с GPRS для теста :)  (Прочитано 28084 раз)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
у меня такая пожелалка, хоть я и не буду юзать, но обидно за tk ) уберите цветной шрифт ) и с размерами шрифта, бы как-то определиться )
Черненьким все чтоли? %)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Потихоньку продвигаюсь - вот уже и есть иконка в меню  icemw и WM но еще spec пилить и пилить...
aptitude на мой пакет все еще страшно ругается....
И пока вместо макросов абсолютные пути...

Как можно узнать что не нравится в моем пакете aptitude'у ?
« Последнее редактирование: 05.05.2010 20:16:27 от YYY »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Провел серию экспериментов :)
Установка через rmp -i - без ругани и выводов.
Но aptitude при загрузке говорит "aptitude 0.4.5             Будет освобождено 66,6kБ диск" и помечает
пакет на удаление...

Установка через apt-get install ...
+++++
apt-get install myppp-0.8.7-alt2.noarch-1.rpm
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано myppp для 'myppp-0.8.7-alt2.noarch-1.rpm'
Следующие НОВЫЕ пакеты будут установлены:
  myppp
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/21,5kB архивов.
После распаковки потребуется дополнительно 66,6kB дискового пространства.
Совершаем изменения...  
Preparing...                 ########################################### [100%]
1: myppp                     ########################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
+++++
Вроде все красиво, но также aptitude при загрузке говорит "Будет освобождено 66,6kБ диск" и помечает пакет на удаление.

Установил через
aptitude install
++++
aptitude install myppp-0.8.7-alt2.noarch-1.rpm
Reading Package Lists... Done
Building Dependency Tree      
Чтение информации о расширенных состояниях      
Инициализация состояний пакетов... Done            
Запись информации расширенных состояний... Done
Замечание: выбран "myppp" вместо
           виртуального пакета "myppp-0.8.7-alt2.noarch-1.rpm"
Следующие НОВЫЕ пакеты будут установлены:
  myppp
0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 0B/21,5kB архивов. После распаковки 66,6kB будет занято.
Запись информации расширенных состояний... Done
Committing changes...  
Preparing...                 ########################################### [100%]
1: myppp                     ########################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Done.
++++
Видимо ему не нравится что-то и он ругается
"Замечание: выбран "myppp" вместо виртуального пакета "myppp-0.8.7-alt2.noarch-1.rpm""

Что это значит? Как исправить?

Текущий rpm


« Последнее редактирование: 06.05.2010 11:53:58 от YYY »

kostyalamer

  • Гость
Ты молодец, проверил все нормально устанавливается и запускается  :). И иконка в меню KDE4 на месте. Про твою аптитуду ничего сказать не могу, а с apt-get install - ом все как положено:

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Ты молодец, проверил все нормально устанавливается и запускается  :). И иконка в меню KDE4 на месте. Про твою аптитуду ничего сказать не могу, а с apt-get install - ом все как положено:
Я уже все что мог перечитал - не могу aptitude убедить что пакет не надо удалять :)
Видимо все-таки придется Геннадия помучать...
Наверное мелочь какая то...

greyzy

  • Гость
ну конечный вариант куда-нить в первый пост и кратенькую конечную инструкцию, а то не уследишь за всем полетом инженерной мысли :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
ну конечный вариант куда-нить в первый пост и кратенькую конечную инструкцию, а то не уследишь за всем полетом инженерной мысли :)
Я стараюсь в первом посте всегда rpm с новой версией держать. myppp-0.8.8-alt2.noarch.rpm
А инструкция простая - надо найти программу в меню, спросит пароль root - без этого модемом не порулить, а далее кнопка "Настройки" и ввести нужные настройки.
Все :)
Далее если требуется значек в трее, но нужен пакет tcl-tksystray
Но если установить только его, то будет значки gif, но они не красивые.
Для красоты значков в трее надо еще tcl-img
Но так как эти пакеты не обязательные - в зависимости не вписывал...

ЗЫ: тогда дополню описанием еще и первый пост :)

greyzy

  • Гость
ну чудненько, у меня все работает. главное соблюдать последовательность.
модем билайн HUAWEY E-160, на билайне деньги кончились. поэтому симка мтс.
система ALD 5 KDE
втыкаем модем. смотрим какое это устройство
# dmesg | grep ttyUSB*
[62796.945324] usb 3-3: GSM modem (1-port) converter now attached to ttyUSB0
[62796.945493] usb 3-3: GSM modem (1-port) converter now attached to ttyUSB1
запускаю скрипт, в преднастройках тыкаю кнопку mts, в поле устройсво пишу /dev/ttyUSB0, в поле логин набираю mts, больше ничего не меняю, сохраняю, подключаюсь.
Пишу с модема :)
Ну теперь бы еще запуск не от root, и простенький билинг :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Пишу с модема :)
Спасибо за тестирование :)

Ну теперь бы еще запуск не от root, и простенький билинг :)
Запуск не от root (т.е. из под пользователя), надо suid бит ставить.
suid вообще не безопасно. Но для дома в принципе "и так сойдет"
И раньше на скрипты получалось ставить.
Теперь на современных дистрибутивах не прокатывает...
Прикрыли лавочку :)


greyzy

  • Гость
Да не за что, спасибо за работу :)
А на какой файл ставить бит?

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Да не за что, спасибо за работу :)
А на какой файл ставить бит?

Сейчас на современных дистрибутивах бит прокатывает на только бинарниках (например его на kppp ставят).
На скриптах хитрый пингвин его не слушает, и даже если скрипт запускаешь через suid'ный бинарник, скрипт запускается от юзера....
А на Аль 2.2 еще работало :)


Но можно использовать sudo
от рута (su-)
> apt-get install sudo

Для гнома xfce lxde (kde ?) от рута
-----
делаем копию desktop файла
> cp /usr/share/applications/myppp.desktop /usr/share/applications/myppp-sudo.desktop
в файле
> mcedit /usr/share/applications/myppp-sudo.desktop
правим
Name=MyPPP
на
Name=MyPPP-SUDO
и
Exec=myppp
на
Exec=sudo /usr/sbin/myppp-run
-----

Для других WM надо править конфиг от рута
Для примера как сделать для icewm
-----
> mcedit /etc/X11/icewm/menu
там меняем
prog "MyPPP - dialer" "myppp" myppp
на
prog "MyPPP - dialer" "myppp" sudo /usr/sbin/myppp-run
-----


Правим sudoers
> mcedit /etc/sudoers
добавим
%myppp ALL=(ALL) NOPASSWD: /usr/sbin/myppp-run
не забываем оставить пустую строку в конце файла

Добавим группу
> groupadd myppp
внесем юзера/юзеров в группу
> mcedit /etc/group
и вписать (пример юзеры user и usernew)
myppp:x:501:user,usernew

Последнее создаем файл /usr/sbin/myppp-run
> mcedit /usr/sbin/myppp-run
Содержание следующее
++++ НАЧАЛО ++++
#!/bin/sh

LANG="ru_RU.UTF-8" /usr/sbin/myppp
++++ КОНЕЦ ++++
И делаем его исполнимым
>chmod +x /usr/sbin/myppp-run

myppp-run требуется, т.к. на минимале вылетает кодировка - почему не понятно....
Т.е. без этого одни кроказябры %) А так нормуль


После чего запускается от пользователя не спрашивая пароли как от root.
Но если юзера нет в группе - не запустится

ЗЫ: Кстати так можно юзеру что угодно разрешить запускать - часто удобно ;)

« Последнее редактирование: 10.06.2010 13:43:37 от YYY »

Оффлайн Rezedent12

  • Завсегдатай
  • *
  • Сообщений: 640
  • Цель оправдывает средства.
Уважаемый разработчик. ("Делопвер! Делопвер! Делопвер!")

У меня есть творческая идея. Почему бы вам не сделать специальный спящий демон с root правами в котором и реализовать функции дозвона.

Демон активируется либо консольной командой "позвонить beelineGPRS"
Или же программой висячей в трее.

В каталоге /etc/dail_up_super размещать файлы с параметрами соединений.
Естественно доступность соединений регулировать общей политикой прав.

В общем дело так пользователь щёлкает по картинке в трее и выбирает из списка соединение.
Или же вводит в консоли команду установки соединения.

Далее, программа которая висит в трее (или вызывается из консоли) подаёт сигнал демону передавая ему содержимое нужного файла и его имя (этот заморот нужен для хорошей безопасности, в общем переданные параметры и указанные в файле должны совпадать).

Тогда демон естественно и начинает звонить.

Так же нужно чтоб от рута можно было разорвать соединение, или же его сможет разорвать тот кто имеет права вызывать это соединение.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 964
Можно конечно и такое сворганить.
Алгоритм:
Скрипт запускается при загрузке машины, висит в памяти и раз в секунду и следит за каталогом - если есть файл в каталоге (файл флаг), то читает содержимое файла.
Содержимое файла - название файла с настройками (типа /home/user/mybeeline).
Согласно настройкам происходит соединение.
При удалении (или изменении содержания ) файла скрипт это видит уже через секунду и разрывает соединение (разрывает и создает новое).
Плюсы - безопасность при правильной реализации.
Скользкий момент - каталог для файла-флага необходимо делать не в домашнем разделе
(хотя сам файл с настройками может быть и в каталоге юзера).

Таким образом надо как-то красиво придумать решить проблему доступа на запись в не домашний каталог для юзера (в любом случае без группы не обойтись).

« Последнее редактирование: 15.06.2010 01:09:55 от YYY »

Оффлайн Rezedent12

  • Завсегдатай
  • *
  • Сообщений: 640
  • Цель оправдывает средства.
Ну, просто задумка идеи такова, что параметры соединений определяет root.
но если на файл соединения установить права записи (тут вы правы, удобно будет создать группу) то пользователь (ли) сможет редактировать соединение.

Размещать же файл соединения в домашнем каталоге неудобно.
Хотя бы потому что на моём компе 3 учётки:
stas - Я
vika - сестра
ira - мама

и в каждую пришлось копировать конфигурационный файл для kppp. А если поменяю провайдера....
От chestnut-dialer я отказался (я написал скрипт который мы использовали на 6й консоли) дело в том что нужно было логится под рутом, а волшебный бит почему то не прокатывал (прога вообще не запускалась, глюк какой то)

Преимущества того подхода который я описал в том, что в случае падения X вместе со значком в трее, соединение сохранится (ведь его поддерживает автономный от морды демон).
Хотя было бы полезно морде получать от демона как нибудь данные о статистике соединения (хотя для этого можно запречь KnetStats или же выдрать из него функционал мониторинга трафика.
При наведении на значок показывать статистику.
При нажатии правой кнопочки  показывать список доступных соединений (если подключение активно, то показывать их все кроме одного серым цветом), а активное можно красным. Разделитель и пункт "Разорвать". Если установленное недоступно юзеру, то показывать этот пункт тоже серым цветом.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Цитировать
Размещать же файл соединения в домашнем каталоге неудобно.
Хотя бы потому что на моём компе 3 учётки:
stas - Я
vika - сестра
ira - мама
может привести к стандартной политике - если есть конфигурационный файл в домашнем каталоге - брать из него, иначе брать из /etc. Тогда общий конфиг кладётся в /etc, а если у кого-то есть свои предпочтения, то из домашнего каталога.

PS может не очень в тему - весь ваш тред я не читал, просто увидел обрывок фразы.