Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

Профиль
Фотография
Опции
Опции
О себе
dimbor не указал(а) ничего о себе.
Личная информация
dimbor
Подвинутый участник
Возраст не указан
Мужской
москва
День рождения не указан
Интересы
Нет данных
Другая информация
Операционная система: Нет данных
JID: Нет данных
Город: москва
Статистика
Регистрация: 30-March 05
Просмотров профиля: 41842*
Последнее посещение: 21st February 2017 - в 01:35
Часовой пояс: Feb 23 2017, в 10:05
1348 сообщений (0.31 за день)
Контактная информация
AIM Нет данных
Yahoo Нет данных
ICQ Нет данных
MSN Нет данных
* Просмотры профиля обновляются каждый час

dimbor

ведущий рубрики


Темы
Сообщения
Друзья
Содержимое
30 Mar 2016
На снобском хабре почитал статью про dnscrypt клиента, много думал, захотел себе поставить. В backports не нашел. Нашел в sid. Если кого интересуют подробности молниеносного бэкпорта (конечно кривого с мантейнерской кочки зрения), могу поделиться квестом и/или пакетами.
29 Feb 2016
Данный поток сознания публикуется здесь, т.к. не соответствует тематике раздела "Терминальные решения", где из меня обычно прет. Решение-то терминальное, как обычно. Да только не в том смысле. В общем, другого места на форуме не нашел, приткну тут.

Началось все с констатации факта, что детская мечта идиота таки сбылась, и в квартире незаметно образовался компьютерный класс из железок жены, детей, кошки, и моих виртуалок. И все это временами приходится админить (приходишь с работы, а тут опять станки, станки... ©) Сидят они под MS, в отличие от. Домен на самбе поднят давненько, чтоб не разбегались. Захотелось беспроблемного доступа к ресурсам а ля "Сетевое окружение" в винде. Казалось бы, есть gvfs, который под xfce бодро все открывает. Но я то в основном в консольке под mc. Консольку конечно же люблю, но не настолько, чтобы по памяти постоянно шарашить "mount -t cifs <много разных букв>", когда там надо только один файл изменить. mc под дебианом собран без smb (потому что с ним нормально не работает). Если допилить, все равно на каждую шару будет каждый раз спрашивать и юзера, и пароль, и домен - неудобен. FAR - бессмысленно, вайн netbios не умеет.

В гугле накопал оный smbnetfs - монтирование всего мелкософтовского в родное дерево с браузингом, лаптой и монашками. Автор - отечественный, но сильно занятой, т.ч. беспокоить не стал. Под дебиан пакетик есть, и даже последняя версия из sid великолепно под wheezy собралась.

Поставил это дело, запустил по обильно найденным в интернете докам. Особенность - разве только, что /etc/smbnetfs.conf непонятно зачем туда кладется. Работает оно с конфигом из ~/.smb/smbnetfs.conf сотоварищи. Завелось с томозами и глюками. Пришлось расчехлить заржавевший напильник - потратить пару ночей на обработку.

Первая типично "самбовская" беда - поголовно исполняемые файлы. Игрища с параметром umask (от fuse) ожидаемо результатов не принесли. Снимать-то он биты снимает, да только у каталогов тоже, и не зайти в них нифига (привет, chmod *).

Патч отсюда не для этого, но пусть будет - каши маслом.

Значится, родил собственный патч. На самом деле наверное очередной "ugly hack", но работает:
Spoiler:
Код
--- function.c.orig     2016-02-28 23:59:29.000000000 +0300
+++ function.c  2016-02-29 00:01:05.976367809 +0300
@@ -402,6 +402,8 @@

        case SMBITEM_SMB_SHARE_ITEM:
            if (samba_stat(path, stbuf) != 0) return -errno;
+            if (S_ISREG(stbuf->st_mode))
+                stbuf->st_mode &= ~(S_IXUSR|S_IXGRP|S_IXOTH);
            return 0;

        default:
@@ -448,6 +450,8 @@
     }

     if (samba_fstat(fd, stbuf) != 0) return -errno;
+    if (S_ISREG(stbuf->st_mode))
+        stbuf->st_mode &= ~(S_IXUSR|S_IXGRP|S_IXOTH);
     return 0;
}


Далее, как одмин, поставил конечно в конфиге show_$_shares "true". Глючит и тормозит.
Установлено седующее: Как только от сервера прилетает "Device or resource busy" на что-то хитроввернутое типа pagefile.sys, оно так удивляется, что вмерает и до конца долистать каталог не может. Ну это ерунда. Не хочет - заставим.
Spoiler:
Код
--- smb_conn_srv.orig.c 2015-01-11 12:46:57.000000000 +0300
+++ smb_conn_srv.c      2016-02-28 23:14:02.264367809 +0300
@@ -470,6 +470,7 @@
            case EPERM:
            case EROFS:
            case ETXTBSY:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, OPEN, error, NULL, 0);
                return;
            default:
@@ -573,6 +574,7 @@
            case EAGAIN:
            case EINTR:
            case EISDIR:
+           case EBUSY:
                state->offset = (off_t) (-1);
                smb_conn_srv_send_reply(ctx, READ, errno, NULL, 0);
                return;
@@ -622,6 +624,7 @@
            case EIO:
            case ENOSPC:
            case EISDIR:
+           case EBUSY:
                state->offset = (off_t) (-1);
                smb_conn_srv_send_reply(ctx, WRITE, errno, NULL, 0);
                return;
@@ -807,6 +810,7 @@
            case ENAMETOOLONG:
            case ENOENT:
            case ENOTDIR:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, RENAME, errno, NULL, 0);
                free((char*)new_url);
                return;
@@ -827,6 +831,7 @@
            case ELOOP:
            case ENAMETOOLONG:
            case ENOTDIR:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, RENAME, errno, NULL, 0);
                free((char*)new_url);
                return;
@@ -1167,6 +1172,16 @@

     if (smbc_stat(url, &reply.stat) < 0){
        switch(errno){
+           case EBUSY:
+                DSRVPRINTF(ctx, 6, "errno=%d, %s; prepare fake reply to send.\n", errno, strerror(errno));
+               memset(&reply.stat, 0, sizeof(struct stat));
+                reply.stat.st_mode = S_IFREG;
+                reply.stat.st_nlink = 0;
+                reply.stat.st_uid = 0;
+                reply.stat.st_gid = 0;
+                reply.stat.st_size = 0;
+                reply.stat.st_blksize = 4096;
+               break;
            case EACCES:
            case ELOOP:
            case ENAMETOOLONG:
@@ -1201,6 +1216,16 @@

     if (smbc_fstat(state->fd, &reply.stat) < 0){
        switch(errno){
+           case EBUSY:
+                DSRVPRINTF(ctx, 6, "errno=%d, %s; prepare fake reply to send.\n", errno, strerror(errno));
+               memset(&reply.stat, 0, sizeof(struct stat));
+                reply.stat.st_mode = S_IFREG;
+                reply.stat.st_nlink = 0;
+                reply.stat.st_uid = 0;
+                reply.stat.st_gid = 0;
+                reply.stat.st_size = 0;
+                reply.stat.st_blksize = 4096;
+               break;
            case EACCES:
            case ELOOP:
            case ENAMETOOLONG:
@@ -1247,6 +1272,7 @@
            case EPERM:
            case EROFS:
            case ETXTBSY:
+           case EBUSY:
                state->offset = (off_t) (-1);
                smb_conn_srv_send_reply(ctx, FTRUNCATE, errno, NULL, 0);
                return;
@@ -1287,6 +1313,7 @@
            case ENOTDIR:
            case EPERM:
            case EROFS:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, CHMOD, errno, NULL, 0);
                return;
            default:
@@ -1321,6 +1348,7 @@
            case ENOENT:
            case EPERM:
            case EROFS:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, UTIMES, errno, NULL, 0);
                return;
            default:
@@ -1370,6 +1398,7 @@
            case ELOOP:
            case ENAMETOOLONG:
            case ENOTDIR:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, SETXATTR, errno, NULL, 0);
                return;
            default:
@@ -1418,6 +1447,7 @@
            case ELOOP:
            case ENAMETOOLONG:
            case ENOTDIR:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, GETXATTR, errno, NULL, 0);
                return;
            default:
@@ -1459,6 +1489,7 @@
            case ENAMETOOLONG:
            case ENOENT:
            case ENOTDIR:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, LISTXATTR, errno, NULL, 0);
                return;
            default:
@@ -1505,6 +1536,7 @@
            case ELOOP:
            case ENAMETOOLONG:
            case ENOTDIR:
+           case EBUSY:
                smb_conn_srv_send_reply(ctx, REMOVEXATTR, errno, NULL, 0);
                return;
            default:


Можно уже радоваться. Разве еще рекомендую поставить stat_workaround_enable_default_entries "false", т.к. этот механизм сделан кривовато. Консольке нипочем, а вот тот же Thunar на шарах с файлами-исключениями тупит не по детски, хотя должен ускоряться.
Картина почти аналогична предыдущему случаю. Ну да гейтс с ней.

И в заключение. Кто хочет пакетики с годнотой, общайтесь с мантейнерами сами. Себе то соберу, даже поделюсь. Но это будет неофициально и в репах само не появится.
Прикрепленные файлы
Прикрепленный файл  smbnetfs_patches.tar.gz ( 1.35 килобайт ) Кол-во скачиваний: 1
 
14 Dec 2015
Захотелось тута под Новый год сотворить какое-нить бессмысленное и беспощадное доброе дело. Конечно же путем написания поучений, о которых никто нифига не просил. Речь пойдет о эникейном сисадминстве, сидючи под линуксом. Мы конечно тут усе такие красивые и с открытыми исходниками, но иногда от использования проприетари никуда не деться.

Последнее время слишком часто приходится использовать обозначенный teamviewer для удовлетворения различных теть-маш. Самой удобной получилась схема: "Зайдите на сайт teamviewer.com - скачайте - запустите - скажите id и пароль - не думайте ни о чем." Большой плюс также состоит в необязательности публичного ip-адреса у абонента - все через сторонний сервер и нахаляву, заметим.

Соответственно, под линукс сей продукт имеется. Он бодро функционирует под само-притащенным вайном. Т.е. подключаться к людям я могу. А вот подключаться ко мне совсем не надо даже и пытаться. Меж тем, вьюер последних версий напрочь отказывается работать без запущенного демона teamveiwerd. Демона, проприетарного, от рута запущенного, постоянно висящего. Упс - там еще ключи от квартиры надо положить для полного счастья. Паранойя негодуе.

Но жить как-то надо все же. Решено, исходя из стыдливой оговорки "один раз не это самое", подпереть тревожность костылем на баше. Пусть уж раз нужен ему рут, этот рут там будет, только когда я его использую.

Костыль состоит из двух частей. Первая - файлик tv в /etc/sudoers.d:
Код
%users   ALL= NOPASSWD: /bin/systemctl * teamviewerd.service


А запускать вьюер надо через /usr/local/bin/tv_wd:
Код
#!/bin/bash

daemon_bin="teamviewerd"
tv_bin="TeamViewer.exe"

proc_pids() {
    echo "$(ps -o pid= -C $1)"
}

d_ctl() {
    sudo /bin/systemctl $1 "$daemon_bin".service >/dev/null 2>&1
    echo $?
}

[ -n "$(proc_pids $tv_bin)" ] && exit # could be only one instance
[ $(d_ctl status) -ne 0 ] && d_ctl start >/dev/null 2>&1
sleep 1
/opt/teamviewer/tv_bin/script/teamviewer >/dev/null 2>&1 &
while true; do
    sleep 10
    if [ -z "$(proc_pids $tv_bin)" ]; then
        d_ctl stop >/dev/null 2>&1
        break;
    fi
done


Получилась сторожилка демона: запускаем сервис, запускаем вьюер, пока есть процесс вьюера, демон не завершаем - караулим.
/Еще конечно не забыть от рута отменить запуск демона при загрузке системы./

P.S. Не, ну понятно, что для полной контрацепции такую вещь в отдельной виртуалке надо запускать. Но вроде как эти ребята еще не замечены в гадостях. Значит пока такой баланс доверия.
15 Nov 2014
Сначала хотел написать в раздел Debian. Потом вспомнил, ситуация недетски напрягала и под другими пакетными менеджерами - rpm, portage. Это только теми, с чем работал.

Итак. Имеется проект xxx, офигенной сложности и глючности. Посему на всем жизненном пути проекта он патчится неоднократно. Естественно, у проекта есть конкретное имя. Но т.к. много их - таких проектов, не акцентирую. Далее сидят человеки, занимающиеся пилением проекта. Берут человеки гит, сливают туда исходники (upstream), комитят патчи, мержатся тэгятся и занимаются прочими программерскими непотребствами. Удобно. Появляется результат, который надо донести до потребителя. Потребители живут под разными системами и архитектурами.
Надо им предоставить соответствующие бинарные пакеты. Как? - Да собрать!

Пытаются собрать человеки пакет под конкретную систему, и тут их ждет облом. Сами не могут. Вернее могут, но только под свою. Надо идти на поклон к специальным другим человекам, специализирующимся на сборке пакетов под конкретную систему - мантейнерам или ментейнерам (по вкусу). Тьма их, они по большей части ленивы, нелюдимы и мизантропы. И вообще абонент вне зоны доступа. Но это мелочи. Главное, что они при сборке пакета тоже берут апстримовские исходники кучкой и накладывают на них патчи по очереди. В кучу фукциональные из "разработческого" гита и свои - мантейнерские. Накладывают средствами своего менеджера пакетов. И у них как правило тоже есть свой гит, хранящий историю _сборок_ - требуху конфигов пакетного менеджера, самих патчей и тарболов исходников. Т.е. без пузыря и досконального знания конкретного менеджера нифига не разобраться. Снос башки, кароч.

И приходится при тормознутости/недоступности манейнеров изучать их религиозную кухню, да еще и не одну. Не с нуля же пакеты собирать. А это очень сильно отвлекает от полета мысли по развитию функционала проекта. Приземляется мысль, в общем. Мантейнеров тоже понять можно. Им по большому счету плевать, что собирать - лишь бы собралось.

Из поисков по сети и собственных скудных мыслей появилась неновая идея. Схематически обозначу ее как "модуль к гит". Идея в том, что главный человек - разработчик, а не мантейнер (сейчас наоборот). На вершине пищевой пирамиды должен находиться гит разработчиков. С получением при сборке пакета уже готовых исходников по бранчу/тэгу. Средствами же сборщика пакетов накладывать только патчи, необходимые данной системе, и только ей. Подпись - ваш КО.

Хорошо бы еще в том же гите, хранить и мантейнерскую требуху для разных систем по разным каталогам. Да еще и автоматизировать процесс сборки. Из похожего в сети нашел git-deb-conf. Есть также штуковина под названием git-buildpackage. Но вот именно она и ориентирована на мантейнеров, причем сугубо дебиановских.

Просьба прокомментировать данный поток сознания. Не может же быть, чтобы я один озадачился подобным.
12 Oct 2014
Назрела необходимость снова сделать что-то большое и чистое - помыть слона в зоопарке разработать и реализовать проект перевода пары-тройки контор под СПО. Без слова "частичного" декларируемая цель конечно отдает махровым школоло. Частичность, она же ползучесть должна быть заложена в систему. Итак.

Имеется среднего калибра торгово-производственная организация. 15-20 локальных рабочих мест, 3-4 удаленных филиала на 1-3 рабочих места. Занимается просиживанием штанов и юбок автоматизируемой деятельностью, разделяемой на:
Производственную - вытуживание взвешивание, смешивание, комплектация, упаковка и маркировка фирменного продукта. Скажем, гербалайфа.
Производится с помощью дружелюбных человеку агрегатов, управляемых с ПК. Далее просто агрегатов, или ДЧА.
Торговую - поиск, впаривание и напаривание обслуживание клиентов по договорам. Осуществляется при помощи конфигурации оперативного и складского учета 1С. Далее 1С Торговля.
Дизайнерскую - фотографирование, видеосъемка продукта и субъектов после потребления продукта, изготовление этикеток для продукта. Производится посредством разнообразных графических редакторов.
Маркетинговую - изготовление рекламного материала и макетов для бумажной рекламы на базе работ дизайнеров и рассылка получившегося спама куда попало по клиентской базе. Также публикация этого всего на сайте. Работается редакторами из прошлого пункта и почтовым клиентом.
Кассовую - изъятие прием денег у благодарных покупателей как наличными, так и карточками, фиксация сих фактов в 1С Торговле. Дополнительно используются ККМ и карточные терминалы.
Бухгалтерскую - игра сапер фиксация поступления материала, безналичные платежи, отчетность. 1С Бухгалтерия, 1С Торговля, программы Клиент-Банк, Excel, Excel, Excel.
Секретарскую - кофемашина начальника внутренний и внешний документооборот, чуть-чуть кадровой. Офисные программы, почтовый клиент.
Управленческую - посещение порносайтов переписка с поставщиками и филиалами, внутренние отчеты. 1С Торговля, офисные программы, почтовый клиент.

В общем то получилось много букв и описание средней по больнице температуры. Но все равно еще хочется под СПО, хоть краешком.
Стартовая позиция: Бабуина, собирающего трюфеля. Одноранговая сетка, домен w2k, рабочие станции xp, перемещаемые профили пользователей, файловый+терминальный сервер под линуксом и wine@etersoft для филиалов, гейт в инет под каким-то линуксом со сквидом. Почтовый клиент TheBat с совместно используемыми ящиками. Почтовый же сервер находится у хостера и в дальнейших танцах участвовать не будет.

Идеальный результат выглядит как все рабочие станции в офисе под линуксом. Понятное дело, он недостижим. Вот если бы я был директором, то да - несомненно, мои красноглазые сотрудники рисовали бы в gimp, учитывали бы Ананасом... и т. д. Но не тут то было. Значит нервы исполнителей мне дороги, они агреггируют финансы, из которых и мне перепадает часть. И процесс останавливаться не должен. Никаких революций. Надо считаться с существованием фотошопов, корелей и ужасающего количества других инструментов под операционки MS. С другой стороны, надо признать, что в последние годы средствами СПО стало возможным выполнять процентов девяносто офисных задач. Вопрос скорее педагогический.

Пару здешних завсегдатаев знает, эти самые последние годы были мной посвящены грызению двух граней СПО - терминальному доступу (nx) и виртуализации (xen). Наконец могу сказать, что здоровье одного и другого - хорошее. Обе технологии применяются по раздельности и вместе. Самопальные образы на базе Debian wheezy давно использую для поднятия серверов. Как хостов, так и виртуалок. Виртуалки могут быть и мелкософтовскими ОС. С паравиртуальными драйверами очень даже шустро.

А что если на этих двух китах переплыть под СПО? (Сразу оговорюсь, что заплыв будет техническим. Вопросы лицензирования и прочей копирастии давайте оставим этим алчным отщепенцам.) Представим, что у менеджера Васи появляется в один прекрасный день не просто комп под линуксом, где ему надо месяц объяснять, какие пипки тыкать. Да еще и половины пипок нету вообще. У Васи появился комп с линуксом, где есть красивая иконка "Мой бывший Вындовс". Где он оказывается в своей прошлой жизни. И может как и раньше открыть "КлиентыВаси.xlsx".
Через несколько дней мы Васе и говорим: Работай везде как раньше, только вот своих "Клиентов" открывай под линуксом (откроется в Excel 2007 под вайном). Еще через месяц доведем до Васи, что лучше будет файлик в OpenOffice открыть и как odt сохранить. Будет печенька, например. Или не будет пенделя, что ближе к жизни.
Вдруг Вася станет колом и скажет, мол под этими вашими линуксами в моем файле в ячейке не работает моя изумительная звездопроушина, из-за которой-то вся прибыль. А начальник возьми с Васей и согласись. Но нам все нипочем. Оставим Васе живым эксель в его виндовсе. А там или OpenOffice узнает про звездопроушину, или Васю уволят.

История утрирована, все персонажи вымышлены. Приведена для иллюстрации возможных вариантов: натив - эмуляция - оригинал.
И это я еще терминальных возможностей не касался.
Идея вполне себе реализуема - железки сейчас сплошь мощные.
Хотелось бы услышать ваши мысли на эту тему.
При одобрении собственно займусь реализацией. Есть масса вопросов по альтернативе AD, администрированию, обновлению ПО... и т. п.

Спасибо, что дочитали до этого места
Просмотры


9 Feb 2017 - 22:01
lav


8 Feb 2017 - 11:45


31 Dec 2016 - 1:59


23 Oct 2016 - 19:37


28 Apr 2016 - 10:46


9 Feb 2016 - 10:51


12 Aug 2015 - 14:48


9 Jul 2015 - 15:53


5 Mar 2015 - 15:05


2 Mar 2015 - 18:09


Друзья

83 сообщений
14th May 2015 - в 02:01
Просмотр всех друзей
RSS Текстовая версия Сейчас: 23rd February 2017 - в 10:05




Rating@Mail.ru